Javascript的document.querySelectorAll(*cssSelector*)
会返回匹配元素n的NodeList
。 (这与元素对象数组不同吗?)。
因此,如果我想实现一个为每个数组元素指定样式属性的函数,就像jQuery
这样做的那样,我假设我需要document
上的扩展方法。但是这样的函数必须每次返回多个值,并且'yield'
返回到调用链的其余部分。我该如何做到这一点?
这是我到目前为止所做的(CodePen Link):逻辑在某些方面显然是错误的:
function doThis() { //called by any trigger
document.$("p").style.color = "red"; //should change all 'p's fore color to red.
}
document.$ = function(cssSel) { //extension method
var elsSelected = countElements(cssSel) // Generator
for (var i = 0; i < document.querySelectorAll(cssSel).length; i++) {
return elsSelected.next().value;
}
}
function* countElements (cssSel) {
elList = document.querySelectorAll(cssSel);
for (var i = 0; i < elList.length; i++) {
yield elList[i];
}
}
我还想使用$
而不说document.$.
在prototype
之间添加document
和扩展方法声明中的$没有帮助。