因此,基本上,如果我有"this.that"
,我希望它成为['this', 'that']
,但是使用string.split()可以使"this.('.that')"
或'this.(".that")'
成为['this', '(".that")']
。 )还是没有?
答案 0 :(得分:1)
基本上我试图写一个switch语句将jquery变成js,所以如果您写$('p')。hide()会隐藏所有p标签,但是如果您写$('。p')。 hide()将隐藏所有.p类
似乎您不想使用jQuery,并且您正在尝试编写一个将jQuery代码转换为相应DOM API的解析器。这可能是灾难的根源。创建一个可以像jQuery一样工作的简单构造函数更有意义。像这样:
function $(selector) {
if (!(this instanceof $)) {
return new $(selector);
}
this.length = 0;
if (typeof selector === 'undefined') {
return this;
}
var q = document.querySelectorAll(selector);
for (var i = 0, l = q.length; i < l; i++) {
this[i] = q[i];
}
this.length = q.length;
return this;
}
$.prototype.each = function(cb) {
for (var i = 0, l = this.length; i < l; i++) {
cb.apply(this[i], [i, this[i]]);
}
return this;
}
$.prototype.hide = function() {
return this.each(function(i, el) {
el.style.display = 'none';
});
}
$
函数接受document.querySelectorAll
接受的所有选择器。