Let's say that we have a loop which result 3 divs with other 4 divs inside each, like this:
<div class="one">
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
</div>
<div class="one">
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
</div>
<div class="one">
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
<div class="two">second class</div>
</div>
Now, I want to change the style css with javascript. How can I make something like this in javascript and work?
document.getElementsByClassName('one')[2].document.getElementsByClassName('two')[3].style.cssText {...};
I want to change the style css of the class .two
from child [3]
which is inside class .one
from child [2]
You were very close. A HTMLElement
has - like document
- a .getElementsByClassName
method to select some of the child elements:
document.getElementsByClassName('one')[2].getElementsByClassName('two')[3].style.cssText = 'background-color: red';
<div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div> <div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div> <div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div>
MDN: document.getElementsByClassName
and Element.getElementsByClassName
.
I'm not sure if you absolutely want to do this with JS, but just in case, here's a pure CSS approach :
.one:nth-child(3) .two:nth-child(4){ background-color : red; }
<div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div> <div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div> <div class="one"> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> <div class="two">second class</div> </div>
( nth-child
is 1-based)
You can use below code -
var parent = document.getElementsByClassName('one')[2]
parent.getElementsByClassName('two')[3].style.color = "blue";
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.