Jquery 大于150个字符的p元素中的nodeType==3

Jquery 大于150个字符的p元素中的nodeType==3,jquery,Jquery,现在,我有以下代码: var source = $('p').filter(function(){ return $(this).text().length > 300;}) .parent().slice(0,1); 通过过滤p元素,我找到了第一个长度超过300个字符的元素,并将其父元素存储在源代码中。我的问题是…我如何只获取文本内容(typeNode 3)。我知道这可能是一个愚蠢的问题,但尝试这个。typeNode==3似乎不起作用 下面的答案在某些情况下似乎有效,为

现在,我有以下代码:

var source = $('p').filter(function(){
    return $(this).text().length > 300;})
    .parent().slice(0,1);
通过过滤p元素,我找到了第一个长度超过300个字符的元素,并将其父元素存储在源代码中。我的问题是…我如何只获取文本内容(typeNode 3)。我知道这可能是一个愚蠢的问题,但尝试这个。typeNode==3似乎不起作用


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

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


我正在尝试获取第一个p元素的父元素(),该元素有150个节点类型3个字符(0,1)。出于测试目的,我尝试在作为父元素()的子元素的p元素上设置一个边框。@Praneet-我不确定我是否理解您的意思。你能在上面贴一个我能看到的示例吗?哦,那不行,我们不能在文本节点上设置css。它只对元素有效。我已经更新为只在文本节点的父节点上设置css borer。看看-。更新了示例,因为我现在更好地理解了您的问题。
var textNodes = $('p').contents().filter(function() {
    return this.nodeType == 3 && this.nodeValue.length > 150;
});