2013-07-09 2 views
0

Вот небольшой фрагмент, чтобы служить в качестве примера:Применить стиль CSS для дочерних узлов

<div id="parentDiv"> 
    <div>child1</div> 
    <div>child2</div> 
</div> 

С помощью CSS можно сделать так:

div#parentDiv { position: absolute; } 
    div#parentDiv>div { position: relative; } 

Как сделать такой же стиль с JavaScript?

+0

Более эффективный метод будет определить иерархическую CSS и использовать JS для добавления/удаления классов на дети. – mohkhan

+1

Это то, что вам нужно: -http: //stackoverflow.com/questions/195951/change-an-elements-css-class-with-javascript –

ответ

2

Попробуйте это: (только иметь только дочерние элементы, а не все вложенные элементы)

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 
    } 
} 

Working Fiddle

Не лучший, но вы можете обратиться ниже: (только для некоторых больше знаний)

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'); 
2

попробовать это

var parentDiv1 = document.getElementById('parentDiv'); 
    var childDiv = parentDiv1.getElementsByTagName('div'); 
    parentDiv.style.position = "absolute"; 
    for (var i = 0; i < childDiv.length; i++) { 
     childDiv[i].style.position = "relative"; 
    } 
+0

Вы должны заменить 'pDiv' во второй строке' parentDiv'. – Cthulhu

+1

Вы должны выполнить цикл, или он не будет работать – bfavaretto

+0

попробуйте обновить ответ –

-1

Вы можете использовать следующее:

document.getElementById('parentDiv').childNodes[0].style.position = "relative"; 
document.getElementById('parentDiv').style.position = "absolute";