nodeType == 3,p元素大于150个字符

时间:2011-06-20 04:51:19

标签: jquery

现在,我有这段代码:

var source = $('p').filter(function(){
    return $(this).text().length > 300;})
    .parent().slice(0,1);

通过p元素过滤,我找到第一个超过300个字符的元素,并将其父元素存储在源代码中。我的问题是......我怎么才会得到文本内容(typeNode 3)。我知道这可能是一个愚蠢的问题,但尝试this.typeNode == 3似乎不起作用

以下答案似乎在某些情况下有效,为了更加清晰,我在“来源”的所有“p”子项周围设置边框。有时,“p”元素包含图像而不包含文本。我尝试使用下面的答案,但它似乎不起作用。

1 个答案:

答案 0 :(得分:1)

filter只会获取元素节点。要获取包括文本节点在内的所有节点,请调用contents()。并将typeNode中的单词切换为nodeType:)

var textNodes = $('p').contents().filter(function() {
    return this.nodeType == 3 && this.nodeValue.length > 150;
});