我试图理解这段代码做了什么,以及为什么我们在不使用 addBack() 的情况下获得相同的结果时使用 addBack() 和 find()
拿这两个例子
$("body div").find("*").addBack().contents().filter(function(){
return this.nodeType === 3 && /shaolin/i.test(this.nodeValue);
})
对比
$("#myDiv").find("*").addBack().contents().filter(function(){
return this.nodeType === 3 && /judo/i.test(this.nodeValue);
})
另外我们为什么要做/shaolin/i.test(this.nodeValue);?
最佳答案
find()
只返回匹配选择器的后代。该代码使用 addBack
,因此除了所有后代元素之外,它还将搜索原始 body div
元素的内容。
如果没有顶级 DIV
元素与过滤器函数匹配,那么无论有没有 addBack
,结果都将相同。代码试图做到彻底,因此不会遗漏任何内容。
该代码正在查找 body div
中包含单词 shaolin
的所有文本节点。 /shaolin
是一个正则表达式,它根据此测试每个文本节点的值。
关于jquery - 为什么 addBack 与 Find() 一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21923611/