我目前有以下
<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。
任何帮助表示感谢。
答案 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)
答案 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/