可能重复:
在不包括后代的元素中获取文本
我正在尝试使用:not
但.not()
仍然无法正常工作。我希望结果只是“星期一”。
示例标记:
<td id="day_id">
Monday
<div class='spec_class'>
<span>One</span>
<span>Two</span>
</div>
</td>
可能重复:
在不包括后代的元素中获取文本
我正在尝试使用:not
但.not()
仍然无法正常工作。我希望结果只是“星期一”。
示例标记:
<td id="day_id">
Monday
<div class='spec_class'>
<span>One</span>
<span>Two</span>
</div>
</td>
jQuery 并没有真正“做”文本节点,所以这是少数几个最好使用原始 DOM 方法的地方之一:
var text = "",
node;
for (node = $("#day_id")[0].firstChild; node; node = node.nextSibling) {
if (node.nodeType === 3) { // 3 = text node
text += node.nodeValue;
}
}
console.log("[" + text + "]"); // "[ Monday ]"
注意之前和之后的空格,因为在文本“Monday”之前和之后都有带有空格的文本节点。你可以$.trim()
用来摆脱它。
更多阅读:
您需要查看元素的 textNodes
var td = jQuery("#day_id");
var textNodes = td.contents().filter(function() {
return this.nodeType == 3;
});
console.log(textNodes.text());