如何在两个特定元素之间选择内容?

沙菲扎迪

我有两个常量元素:(总是存在)

  • span.start

  • span.stop

这是我的HTML结构(模式)

... = /* each tag|string|element can be in here */

...

<span class="start"> ... </span>

...   /* now I want to select every-text is in here */

<span class="stop"> /... </span>

...

注意:我只想选择文字内容(.text()


这是一个例子

<div class="one">
    <a href="www.example.com">LinkName</a>
    there is sometimes a string
    <span class="start">what</span>              // --------------- beginning of range
    I
    <div>want</div>                              
    <span>to</span>
    <span class="stop">select</span>             // --------------- end of range
    <div class="two">
        there can be any element/string else
    </div>
</div>

我也想要这个输出:

what I want to select


我试过的:

var content = $('body').html().split($('span.stop')[0].outerHTML)[0].trim().text();

但这^取决于span.stop换句话说,它只选择顶部的所有文本(之前,之后) span.stop

编码器Pi

这是伪代码:

获取父元素的子节点:从等于“开始”节点的节点:从每个下一个节点获取文本内容,直到到达“结束”节点

function getTextInbetween(startNode, stopNode) {
    if (startNode.parentElement != stopNode.parentElement) return;

    var elements = startNode.parentElement.childNodes;

    // Get Start-Position
    var startPos = -1;
    for (var i = 0; i < elements.length; ++i) {
        if (elements[i] == startNode) {
            startPos = i;
            break;
        }
    }
    //var startPos = [].indexOf.call(elements, startNode); // Short version of the loop

    // Get all the text from start to stop
    var text = "";
    for (var i = startPos; i < elements.length; ++i) {
        text += elements[i].textContent;
        if (elements[i] == stopNode) {
            break;
        }
    }
  
    // remove lines and spaces as HTML does
    text = text.trim();
    text = text.replace(/\s+/g, " ");

    return text;
}

var startNode = document.getElementsByClassName("start")[0];
var stopNode = document.getElementsByClassName("stop")[0];
var text = getTextInbetween(startNode, stopNode);
console.log(text);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="one">
  <a href="www.example.com">LinkName</a>
  there is sometimes a string
  <span class="start">what</span>
  I
  <div>want</div>
  <span>to</span>
  <span class="stop">select</span>
  <div class="two">
    there can be any element/string else
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在两个相同元素之间选择所有元素?

来自分类常见问题

正则表达式:如何在两个标题之间选择所有内容?

来自分类Dev

如何使用 XPath 在两个特定表格行之间选择元素

来自分类Dev

如何在两个特定字符之间选择字符串?

来自分类Dev

如何在两个日期之间选择不同的值

来自分类Dev

如何在两个值之间随机选择?

来自分类Dev

如何在两个(内联)元素之间插入空格?

来自分类Dev

XPATH选择两个特定元素之间的所有元素

来自分类Dev

如何在两个元素之间的数据属性相同的情况下创建CSS选择器?

来自分类Dev

R:如何在两个CSV文本文件之间查找和比较特定元素

来自分类Dev

在两个定义的元素之间选择元素

来自分类Dev

如何删除我在链表中选择的两个元素之间的所有元素

来自分类Dev

在两个表之间,如何选择一个存在特定值的id的表,mysql

来自分类Dev

如何在两个浮动元素之间完美地使浮动元素居中?

来自分类Dev

如何在jquery中的两个元素之间找到元素?

来自分类Dev

Linq语句选择两个集合之间的公共元素

来自分类Dev

如何在所有匹配元素中仅选择两个元素?

来自分类Dev

如何在Python中的两个html标记之间获取所有内容?

来自分类Dev

Lua:如何在字符串中两个或多个重复字符之间放置内容?

来自分类Dev

如何在两个特定字符串之间找到一个数字?

来自分类Dev

如何在Blogger中将两个小部件内容包装到单个DIV元素中?

来自分类Dev

jQuery:如何在两个封闭的html标签之间选择文本

来自分类Dev

PKG-CONFIG如何在两个.pc文件之间选择?

来自分类Dev

如何在Word VBA中的两个“书签”之间选择文本?

来自分类Dev

如何在oracle中两个时间戳之间选择记录

来自分类Dev

如何在包括它们的两个模式之间选择首次出现

来自分类Dev

如何在两个日期之间选择而不使用年份来获取生日

来自分类Dev

如何在两个列表框之间同步选择索引

来自分类Dev

如何在SQL Server中的两个varchar列之间进行选择

Related 相关文章

  1. 1

    如何在两个相同元素之间选择所有元素?

  2. 2

    正则表达式:如何在两个标题之间选择所有内容?

  3. 3

    如何使用 XPath 在两个特定表格行之间选择元素

  4. 4

    如何在两个特定字符之间选择字符串?

  5. 5

    如何在两个日期之间选择不同的值

  6. 6

    如何在两个值之间随机选择?

  7. 7

    如何在两个(内联)元素之间插入空格?

  8. 8

    XPATH选择两个特定元素之间的所有元素

  9. 9

    如何在两个元素之间的数据属性相同的情况下创建CSS选择器?

  10. 10

    R:如何在两个CSV文本文件之间查找和比较特定元素

  11. 11

    在两个定义的元素之间选择元素

  12. 12

    如何删除我在链表中选择的两个元素之间的所有元素

  13. 13

    在两个表之间,如何选择一个存在特定值的id的表,mysql

  14. 14

    如何在两个浮动元素之间完美地使浮动元素居中?

  15. 15

    如何在jquery中的两个元素之间找到元素?

  16. 16

    Linq语句选择两个集合之间的公共元素

  17. 17

    如何在所有匹配元素中仅选择两个元素?

  18. 18

    如何在Python中的两个html标记之间获取所有内容?

  19. 19

    Lua:如何在字符串中两个或多个重复字符之间放置内容?

  20. 20

    如何在两个特定字符串之间找到一个数字?

  21. 21

    如何在Blogger中将两个小部件内容包装到单个DIV元素中?

  22. 22

    jQuery:如何在两个封闭的html标签之间选择文本

  23. 23

    PKG-CONFIG如何在两个.pc文件之间选择?

  24. 24

    如何在Word VBA中的两个“书签”之间选择文本?

  25. 25

    如何在oracle中两个时间戳之间选择记录

  26. 26

    如何在包括它们的两个模式之间选择首次出现

  27. 27

    如何在两个日期之间选择而不使用年份来获取生日

  28. 28

    如何在两个列表框之间同步选择索引

  29. 29

    如何在SQL Server中的两个varchar列之间进行选择

热门标签

归档