我看到某插件里有写:判断是否是DOMlist和封装document.querySelectorAll的函数,如下// 是否是 DOM Listfunction isDOMList(selector) { if (!selector) { return false; } if (selector instanceof HTMLCollection || selector instanceof NodeList) { return true; } return false;}// 封装 document.querySelectorAllfunction querySelectorAll(selector) { var result = document.querySelectorAll(selector); if (isDOMList(result)) { return result; } else { return [result]; }}然后我就奇怪,为什么会要重新封装一次querySelectorAll(),然后我写了一个Demo发现不论是怎样,querySelectorAll()取到的永远都是DOMlist,想问一下这个封装判断是否是DOMlist的作用是什么,或者说什么情况下,我的demo中会返回false下面给出我写的demo<body><ul> <li class="nobe">a</li> <li>b</li> <li>c</li> <li>d</li> <li class="nobe">e</li></ul><button onclick="checkDom()">点击寻找li</button><script type="text/javascript"> function isDOMList(selector) { if (!selector) { return false; } if (selector instanceof HTMLCollection || selector instanceof NodeList) { return true; } return false; } function qSA(selector) { var result = document.querySelectorAll(selector); if (isDOMList(result)) { console.log('是DOMlist'); return result; } else { console.log('不是DOMlist'); return [result]; } } function checkDom() { console.log(qSA('.nobe')); }</script></body>
添加回答
举报
0/150
提交
取消