例如,我们有这个文件jQuery的 - 获取元素文本没有孩子文本
<div id="mydiv">
some text here
<div id="inner div">
text for inner div
</div>
</div>
我需要得到#mydiv
文本只有一些像这样的代码:
alert($('#mydiv').text()); // will alert "some text here"
例如,我们有这个文件jQuery的 - 获取元素文本没有孩子文本
<div id="mydiv">
some text here
<div id="inner div">
text for inner div
</div>
</div>
我需要得到#mydiv
文本只有一些像这样的代码:
alert($('#mydiv').text()); // will alert "some text here"
嘿,试试这个,请” :http://jsfiddle.net/MtVxx/2/
您在这里的具体情况的好链接:http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/(这将只会得到元素的文本)
希望这有助于:)
代码
jQuery.fn.justtext = function() {
return $(this).clone()
.children()
.remove()
.end()
.text();
};
alert($('#mydiv').justtext());
@Random nopes它不是我':P'我的插件通常是漫长而冗长的插件':)'(Not) – 2012-07-06 12:36:30
+1 for using .end()。从来不知道存在,现在它是hella有用的。 – Grinn 2012-08-07 18:43:31
@Grinn saweet bruv,是啊,有一些jq apis,这是令人敬畏的使用,但没有广泛使用,:)有趣的是,呵呵,谢谢加1. – 2012-08-07 19:10:59
当前accepted answer是在性能方面相当可怕的,所以我觉得有义务写一个更轻量级的一个:
$.fn.mytext = function() {
var str = '';
this.contents().each(function() {
if (this.nodeType == 3) {
str += this.textContent || this.innerText || '';
}
});
return str;
};
console.log($('#mydiv').mytext());
好得多!我正在寻找一种迭代所选元素的每个子元素的方法,但我不知道“contents()”,谢谢! – 2014-10-16 23:07:43
请参阅http://stackoverflow.com/a/6520267/14731获取相关答案。 – Gili 2014-11-09 18:34:35
所以你想*所有*子文本节点,没有更深的嵌套文本节点? – 2012-07-06 12:33:51
@ F.Calderan谢谢 – 2012-07-06 12:50:40