使用jQuery确定元素是否为文本节点

时间:2011-09-29 13:21:12

标签: javascript jquery

给定一个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来表示文本节点!

2 个答案:

答案 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,看看是否有帮助。