将CSS样式应用到子节点

use*_*ser 4 html javascript css

这是一个小片段作为示例:

<div id="parentDiv">
    <div>child1</div>
    <div>child2</div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用CSS我可以做到这一点:

  div#parentDiv { position: absolute; }
  div#parentDiv>div { position: relative; }
Run Code Online (Sandbox Code Playgroud)

如何用javascript做同样的样式?

Mr_*_*een 6

试试这个:(只包含子元素,而不是所有嵌套元素

var pDiv = document.getElementById('parentDiv');
var cDiv = pDiv.children;
for (var i = 0; i < cDiv.length; i++) {
    if (cDiv[i].tagName == "DIV") {   //or use toUpperCase()
        cDiv[i].style.color = 'red';  //do styling here
    }
}
Run Code Online (Sandbox Code Playgroud)

工作小提琴

不是最好的,但您可以参考以下内容:(只是为了了解更多知识

Node.prototype.childrens = function(cName,prop,val){   
    //var nodeList = [];
    var cDiv = this.children;
    for (var i = 0; i < cDiv.length; i++) {
        var div = cDiv[i];
        if (div.tagName == cName.toUpperCase()) {
            div.style[prop] = val;
            //nodeList.push(div);
        }
    }
   // return nodeList;
}

var pDiv = document.getElementById('parentDiv');
pDiv.childrens('div','color','red');
Run Code Online (Sandbox Code Playgroud)