我正在尝试使用:not
和.not()
,但仍无效。我希望结果只是“星期一”。
示例标记:
<td id="day_id">
Monday
<div class='spec_class'>
<span>One</span>
<span>Two</span>
</div>
</td>
答案 0 :(得分:3)
jQuery并不是真的&#34;做&#34;文本节点,所以这是您使用原始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 ]"
请注意前后的空格,因为文本节点在文本&#34; Monday&#34;之前和之后都有空格。您可以使用$.trim()
来摆脱它。
更多阅读:
答案 1 :(得分:3)
您需要查看元素的textNodes
var td = jQuery("#day_id");
var textNodes = td.contents().filter(function() {
return this.nodeType == 3;
});
console.log(textNodes.text());