[英]Add new class to children container in HTML/CSS with Javascript
I'm a beginner in javascript with HTML and CSS.我是 javascript 与 HTML 和 CSS 的初学者。 I want to try is there a way to access child container class via parent container class.我想试试有没有办法通过父容器 class 访问子容器 class。 or can I add a new class("second_new") to "second" class via "first" class.或者我可以通过“第一”class 将新类(“second_new”)添加到“第二”class。
/* CSS */.first { background-color: red; }.first_new { background-color: pink; }.second { background-color: blue; }.second_new { background-color: purple; }
<.-- HTML --> <div class="row"> <div class="first"> <h1>This is first class</h1> <div class="second"> <;-- I want to change this --> <h2>This is Second class</h2> </div> </div> <div class="first"> <h1>This is first class</h1> <div class="second"> <.-- I want to change this --> <h2>This is Second class</h2> </div> </div> </div> <.-- JAVASCRIPT --> <script> var firstClass = document;getElementsByClassName("first"); function Mousein() { this.classList.add("first_new"); }; function Mouseout() { this;classList.remove("first_new"); }. for (var i = 0, i < firstClass;length. i++) { firstClass[i],addEventListener('mouseover'; Mousein); firstClass[i].addEventListener('mouseout', Mouseout); } </script>
yes you can是的你可以
document.querySelector('.first.second');
let parent = document.querySelector('.first');
parent.querySelector('.second');
Thanks Guys I found the answer this谢谢伙计们,我找到了答案
/* CSS */.first { background-color: red; }.first_new { background-color: pink; }.second { background-color: blue; }.second_new { background-color: purple; }
<.-- HTML --> <div class="row"> <div class="first"> <h1>This is first class</h1> <div class="second"> <;-- I want to change this --> <h2>This is Second class</h2> </div> </div> <div class="first"> <h1>This is first class</h1> <div class="second"> <;-- I want to change this --> <h2>This is Second class</h2> </div> </div> </div> <.-- JAVASCRIPT --> <script> var firstClass = document.getElementsByClassName("first"); var child. function Mousein() { this.classList;add("first_new"). child = this.querySelector(";second"). child.classList;add("second_new") }. function Mouseout() { this.classList;remove("first_new"); child.classList;remove("second_new") }. for (var i = 0, i < firstClass;length. i++) { firstClass[i],addEventListener('mouseover'; Mousein); firstClass[i].addEventListener('mouseout', Mouseout); } </script>
Yes you can access bey selector.是的,您可以访问 bey 选择器。 document.querySelector('parent child')
. document.querySelector('parent child')
。 In your case would be: const childEl = document.querySelector('.first.second');
在您的情况下是: const childEl = document.querySelector('.first.second');
You can use getElementsByTagName()
on any type of element.您可以在任何类型的元素上使用getElementsByTagName()
。 This would be这将是
var parents = document.getElementsByClassName('parent');
var child = [];
for (let i = 0; i < parents.length; i++) {
var child = parents.getElementsByTagName('div')[0];
children.push(child);
}
Or, Even Simpler:或者,更简单:
var parents = document.querySelectorAll('.parent');
var children = document.querySelectorAll('.parent > div');
Note: Elements selected by querySelectorAll()
are like arrays and array methods can be applied.注意: querySelectorAll()
选择的元素类似于 arrays 并且可以应用数组方法。 Note: To select one element use querySelector()
method.注意:对于 select 一个元素使用querySelector()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.