Javascript 为什么QuerySelector不选择我的所有元素?

Javascript 为什么QuerySelector不选择我的所有元素?,javascript,dom,Javascript,Dom,在本例中,querySelectorAll选择td元素2到4: document.querySelectorAll("td + td"); <table> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> </table

在本例中,querySelectorAll选择td元素2到4:

document.querySelectorAll("td + td");

<table>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
</table>
为什么QuerySelector不能在这个基本场景中工作?

返回一个类似数组的对象,所以不能像jQuery那样设置所有匹配元素的属性。您必须对它们进行迭代:

var divs = document.querySelectorAll('div');

for(var i=0; i<divs.length; i++){
    divs[i].style.color = "red";
}

请参阅:。它返回一个节点列表,它的行为类似于一个数组。我已经检查过了,但无法理解,现在看到下面的答案,我得到了一个概念。没有循环,我可以使用这样的东西吗?divs[].style.color=red非常感谢。但是我仍然很困惑,为什么这样做不需要一个循环,因为您正在从NodeList创建一个jQuery对象,而jQuery自动在元素上循环,而不需要您自己进行循环;哦我不在乎jquery。
var divs = document.querySelectorAll('div');

for(var i=0; i<divs.length; i++){
    divs[i].style.color = "red";
}
function qsa(selector, styleProperty, value){
    var divs = document.querySelectorAll('div');

    for(var i=0; i<divs.length; i++){
        divs[i].style[styleProperty] = value;
    }
    return divs;
}
var divs = qsa('div', 'color', 'red');