Javascript jquery-获取不包含子文本的元素的文本
例如,我们有这个文件Javascript jquery-获取不包含子文本的元素的文本,javascript,jquery,Javascript,Jquery,例如,我们有这个文件 <div id="mydiv"> some text here <div id="inner div"> text for inner div </div> </div> 嘿,请试试这个: 这里有一个很好的链接,适合您的具体情况:(这将只获取元素的文本) 希望这有帮助,:) 代码 jQuery.fn.justtext = function() { return $(thi
<div id="mydiv">
some text here
<div id="inner div">
text for inner div
</div>
</div>
嘿,请试试这个:
这里有一个很好的链接,适合您的具体情况:(这将只获取元素的文本)
希望这有帮助,:)
代码
jQuery.fn.justtext = function() {
return $(this).clone()
.children()
.remove()
.end()
.text();
};
alert($('#mydiv').justtext());
目前的性能非常糟糕,因此我觉得有义务编写一个更轻量级的:
$.fn.mytext = function() {
var str = '';
this.contents().each(function() {
if (this.nodeType == 3) {
str += this.textContent || this.innerText || '';
}
});
return str;
};
console.log($('#mydiv').mytext());
类似于但不需要显式迭代(通过.each())和收集textContent
s:
$('#mydiv').contents().filter(function(){return this.nodeType === 3}).text()
或者,如果可以使用箭头功能:
$('#mydiv').contents().filter((i, el) => el.nodeType === 3).text()
那么您想要所有子文本节点,而不需要更深层嵌套的文本节点?+1用于使用.end()。从不知道它的存在,现在它很有用。@Grinn saweet bruv,是的,有一些jq API,使用非常好,但没有广泛使用:)有趣的是,嗯,感谢加1。这似乎在Win XP IE 8中崩溃了,
克隆
或儿童
仍在努力解决这个问题。好多了!我正在寻找一个way来迭代所选元素的每个子元素,我不知道contents()
,谢谢!
$('#mydiv').contents().filter((i, el) => el.nodeType === 3).text()