给定一个jQuery元素,我如何确定右边的兄弟是一个文本节点而不是另一个元素?在PHP中,您可以将nodeType
与#text
进行比较 - 在这种情况下,等价物是什么?
window.jQuery('body').find('a').each(function (i) {
if(window.jQuery(this).next() == '?'){
}
});
我正在努力弄清楚我可以放入条件部分。
if(window.jQuery(this).next().length != 0){
alert(window.jQuery(this).next().get(0).nodeType);
if(window.jQuery(this).next().get(0).nodeType == 3){
alert('right has text');
}
出于某种原因,我的所有测试都会返回1而不是3来表示文本节点!
答案 0 :(得分:17)
next()
仅返回元素,因此您无法使用它来遍历文本节点。您可以使用DOM nextSibling
属性并检查其nodeType
属性:
现场演示:http://jsfiddle.net/kD9qs/
代码:
window.jQuery('body').find('a').each(function (i) {
var nextNode = this.nextSibling;
if (nextNode && nextNode.nodeType == 3) {
alert("Next sibling is a text node with text " + nextNode.data);
}
});
答案 1 :(得分:2)
作为评论:
检查此nodeType,看看是否有帮助。