我有一个当前正在使用.getElementBy...
JavaScript 中的 DOM 调用的函数。
var $ = function (selector) {
var elements = [];
var lastSelector = selector.substring(selector.search(/[^#.]+$/), selector.length);
if(selector.includes('#') !== true || selector.includes('.') !== true) {
elements.push(document.getElementsByTagName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
}
return elements;
};
使用代码的函数中还有许多其他 if 语句:
elements.push(document.getElementsByTagName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
或者
elements.push(document.getElementsByClassName(lastSelector));
elements = Array.prototype.slice.call(elements[0]);
理想情况下,我想干掉重复的:
elements = Array.prototype.slice.call(elements[0]);
但我无法在if
语句之前定义它,因为尚未填充元素。因此,它尝试在空数组和错误上运行代码。
有什么建议么?