Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:检查函数中的'nodeType==3'_Jquery - Fatal编程技术网

jQuery:检查函数中的'nodeType==3'

jQuery:检查函数中的'nodeType==3',jquery,Jquery,扩展——如何将关于检查nodeType==3的答案转换为函数 函数hasText(元素){ element.contents().filter(函数(){ if(element.contents().nodeType==3){ 返回真值 } }); } $('p')。每个(函数(){ if(hasText($(this))){ $(this.css('border','5px纯蓝色'); } }); 你好 你好我建议: function hasOnlyText(element) { //

扩展——如何将关于检查
nodeType==3
的答案转换为函数

函数hasText(元素){ element.contents().filter(函数(){ if(element.contents().nodeType==3){ 返回真值 } }); } $('p')。每个(函数(){ if(hasText($(this))){ $(this.css('border','5px纯蓝色'); } });

你好

你好
我建议:

function hasOnlyText(element) {
  // checking if the number of contents of the element is equal to
  // the number of contents that are textNodes:
  return element.contents().length === element.contents().filter(function() {
    return this.nodeType && this.nodeType === 3;
  }).length;
}
函数hasOnlyText(元素){
返回element.contents().length==element.contents().filter(函数()){
返回this.nodeType&&this.nodeType==3;
}).长度;
}
$('p')。每个(函数(){
log(hasOnlyText($(this));
});

你好

你好

您需要返回一个值。另外,
Array.prototype.each
可能比
filter
更合适

函数hasText(元素){ 返回Array.prototype.every.call(element.contents(),function(c){ 返回c.nodeType==3; }); } $('p')。每个(函数(){ if(hasText($(this))){ $(this.css('border','5px纯蓝色'); } });

你好


你好

很好——但请注意,像这样的例子也应该是正确的。你到底在测试什么?基本上,如果段落本身(不是它的任何潜在子段落)包含任何文本。更新了答案,我认为第二个片段应该是你正在寻找的?我会用我自己的,但那纯粹是因为我能更清楚地阅读自己的作品,从而理解它;您的解决方案可能更好,但我看不出您试图通过该实现解决的问题。您好,非常感谢!但是就像我刚才告诉David的那样,像“你好”这样的情况也应该返回true。@MarkBoulder:那么,试试
一些
,而不是每个
。等等,这应该返回false,但不会:
@MarkBoulder:你确定结尾没有空格吗?(如果
没有关闭,它会关闭。)哦,是的!我犯了愚蠢的错误。你的也很好用。