以下 jewel.dom 模块具有一些用于处理CSS类的功能。该模块还公开了$()函数,该函数只是querySelectorAll()函数的包装器。 $()函数使您可以使用CSS选择器轻松选择DOM元素,类似于jQuery中的$()函数。
jewel.dom = (function() {
function $(path, parent) {
parent = parent || document;
return parent.querySelectorAll(path);
}
return { $: $};
})();
答案 0 :(得分:2)
它允许您有选择地传入应该从其开始querySelectorAll
的父元素。如果没有提供第二个参数,则默认情况下会从文档中调用querySelectorAll
。例如:
function $(path, parent) {
parent = parent || document;
return parent.querySelectorAll(path);
}
// Will return all divs in the document:
console.log($('div'));
const outer = document.querySelector('.outer');
// Will return all divs which are descendants of `.outer`:
console.log($('div', outer));
<div class="outer">
<div class="inner">
</div>
</div>
请注意,在ES6中,可以使用默认参数来简化此操作:
function $(path, parent=document) {
return parent.querySelectorAll(path);
}
// Will return all divs in the document:
console.log($('div'));
const outer = document.querySelector('.outer');
// Will return all divs which are descendants of `.outer`:
console.log($('div', outer));
<div class="outer">
<div class="inner">
</div>
</div>
答案 1 :(得分:0)
如果parent
为假,则使用document
。
这相当于说:
if(!parent) {
parent = document;
}