获取没有文本的节点

时间:2009-10-04 03:09:42

标签: javascript jquery

$("br").parent().contents().each(function(i) {
   if(this.nodeType == "#Text")
    {
        alert(this.textContent);
    }
});

我正在尝试选择未被html标记包围但通过<br>

分隔的所有文本

这样做,有时会返回很多警报信息,即使只应该有一对。

我试图使用

过滤掉它
if(this.nodeValue != "") or if(this.textContent != "")

但仍然会弹出空警报消息。

我怀疑它是html文档中的空格(我不控制它)。我只想显示实际上有可见文字的this.textContent

1 个答案:

答案 0 :(得分:0)

文本节点的节点类型为3,因此:

$('br').parent().contents().each(function() {
    if ( this.nodeType == 3 ) {
      var text = (this.textContent ? this.textContent : this.innerText), temp = text.replace( /\s+/g, '')
        if ( temp.length ) {
            alert( text )
        }
    }
})

现场演示:http://jsbin.com/abalu