简体   繁体   English

使用 Javascript 将新的 class 添加到 HTML/CSS 中的子容器

[英]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是的你可以

Method 1方法一

document.querySelector('.first.second');

Medthod 2方法二

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM