如何实现JQuery Selector进行赋值

时间:2017-10-16 17:02:10

标签: javascript jquery-selectors selectors-api

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和扩展方法声明中的$没有帮助。

0 个答案:

没有答案