0

有没有一种简单的方法来获取元素中 char 的索引?例如,如果我正在查看下面的第一个跨度,那么我想知道它的第一个字符是 li 中的第七个字符。对于元素中的字符(没有文本节点),我只需要知道这一点,但可能有文本节点,它们的字符会“计数”。

<li id = "li">
    <p>0123</p>
    <div>4
      <span id = "span">5</span>
      <span>67</span>
    </div>
    8
</li>

编辑:为上面的元素添加了 ID。然后是这样的:

index = getIndexOfFirstChar($("#span"), $("#li"))

请注意,字符不是唯一的。我使用了数字,但它可以是任何文本。

4

1 回答 1

0

您可以通过混合使用.text()(获取没有 HTML 的内部文本)、.replace()(删除空格)和.indexOf()获取索引来做到这一点:

var clearTextWithNoWhitespace = $('li').text().replace(/\s+/g, '');
var index = clearTextWithNoWhitespace.indexOf('5');

console.log(clearTextWithNoWhitespace); //012345678
console.log(index); //5

JSFiddle 演示

如果要包含空格:

var index = $('li').text().indexOf('5');
console.log(index); //22

JSFiddle 演示

于 2013-05-20T11:22:33.303 回答