JQuery在父div中选择文本

时间:2012-08-08 15:18:31

标签: jquery html select each

我目前有以下

<div class ="parent">
  <div class="inner">Hello
    <div>Goodbye</div>
  </div>
</div>

<div class ="parent">
  <div class="inner">Hello
    <div>Goodbye</div>
  </div>
</div>

我目前正在使用$(div.parent).each(function(index,item)遍历每个完美运行的父级。

我的问题是我需要选择单词hello。我目前正在使用$(item).text(),但它总是返回HelloGoodBye,这是一个问题。我需要忽略任何其他div。

任何帮助表示感谢。

4 个答案:

答案 0 :(得分:1)

我建议您找一下您要查找的文本节点的第一个jQuery.text(),而不是使用childNode方法:

​var divs = document.getElementsByClassName('inner'),
    i = 0;
for (i = divs.length; i--;) {
  console.log(divs[i].childNodes[0]);   
}

OR

var divs = $('.inner');
divs.each(function() {
  console.log(this.childNodes[0]);
});

请记住,jQuery无法识别childNodes方法。

答案 1 :(得分:0)

尝试

$('div.parent').not('.parent .inner div').each(function(index,item)

可替换地

$(div.parent:not('.inner div').each(function(index,item)

http://api.jquery.com/not/

答案 2 :(得分:0)

此前已讨论过这一主题,其中包含一系列合适的解决方案:Using .text() to retrieve only text not nested in child tags

答案 3 :(得分:0)

你可以通过克隆每个元素,删除不需要的div然后抓取文本来实现这一点。

$('div.parent div.inner').each(function(index,item) {
    $this = $(item).clone();
    $this = $this.find('div').remove();
    $this.text();
});​

这是一个JS小提琴,其中包含上面的代码和HTML:http://jsfiddle.net/L8T7s/