我如何 select 在 ES6 class 中使用此帮助的所有元素
How can i select all elements using the help of this in ES6 class
我试图只访问容器的所有子元素。我为此创建了一个 ES6 class。根据我的项目要求,我需要 class 方法。我的目标是,当我单击任何子元素时,需要选择所有子元素。现在作为一个例子,当我点击任何子元素时,我给所有子元素一个红色边框。如果你看到我的代码,下面一行是我需要帮助的主要内容 let children = parent.querySelectorAll(".child");
现在我在这里使用 .child
class。但是我怎么能在这里使用 this.children
。完整的行应该是这样的 let children = parent.querySelectorAll(this.children);
。我怎样才能做到这一点。我的代码如下。如果我得到这个,那将非常有帮助。希望任何人都可以帮助我。提前致谢!
class Selector{
constructor(parents, children) {
this.parents= document.querySelectorAll(parents);
this.children= document.querySelectorAll(children);
this.selectall=()=>{
this.children.forEach((elem)=>{
elem.addEventListener("click",(e)=>{
let parent = e.target.parentElement;
let children = parent.querySelectorAll(".child");
children.forEach((elem)=>{elem.style.border="2px solid red"});
})
})
}
}
}
let one = new Selector(".parent",".child");
one.selectall();
.parent {font-family:Arial, Helvetica, Sans-serif;}
<ul class="parent">
<li class="child">One</li>
<li class="child">Two</li>
<li class="child">Three</li>
</ul>
<ul class="parent">
<li class="child">One</li>
<li class="child">Two</li>
<li class="child">Three</li>
</ul>
解法1(如果parent
有所有children与child
class):
而不是
let children = parent.querySelectorAll(".child");
试试这个
let children = Array.from(parent.children);
解决方案 2(如果 parent
有 children 与 class 除了 child
)
同时存储 child class。
class Selector {
constructor(parents, children) {
this.parents = document.querySelectorAll(parents);
this.childrenClass = children;
this.children = document.querySelectorAll(children);
this.selectall = () => {
this.children.forEach((elem) => {
elem.addEventListener("click", (e) => {
let parent = e.target.parentElement;
let children = parent.querySelectorAll(this.childrenClass);
children.forEach((elem) => {
elem.style.border = "2px solid red";
});
});
});
};
}
}
let one = new Selector(".parent", ".child");
one.selectall();
我试图只访问容器的所有子元素。我为此创建了一个 ES6 class。根据我的项目要求,我需要 class 方法。我的目标是,当我单击任何子元素时,需要选择所有子元素。现在作为一个例子,当我点击任何子元素时,我给所有子元素一个红色边框。如果你看到我的代码,下面一行是我需要帮助的主要内容 let children = parent.querySelectorAll(".child");
现在我在这里使用 .child
class。但是我怎么能在这里使用 this.children
。完整的行应该是这样的 let children = parent.querySelectorAll(this.children);
。我怎样才能做到这一点。我的代码如下。如果我得到这个,那将非常有帮助。希望任何人都可以帮助我。提前致谢!
class Selector{
constructor(parents, children) {
this.parents= document.querySelectorAll(parents);
this.children= document.querySelectorAll(children);
this.selectall=()=>{
this.children.forEach((elem)=>{
elem.addEventListener("click",(e)=>{
let parent = e.target.parentElement;
let children = parent.querySelectorAll(".child");
children.forEach((elem)=>{elem.style.border="2px solid red"});
})
})
}
}
}
let one = new Selector(".parent",".child");
one.selectall();
.parent {font-family:Arial, Helvetica, Sans-serif;}
<ul class="parent">
<li class="child">One</li>
<li class="child">Two</li>
<li class="child">Three</li>
</ul>
<ul class="parent">
<li class="child">One</li>
<li class="child">Two</li>
<li class="child">Three</li>
</ul>
解法1(如果parent
有所有children与child
class):
而不是
let children = parent.querySelectorAll(".child");
试试这个
let children = Array.from(parent.children);
解决方案 2(如果 parent
有 children 与 class 除了 child
)
同时存储 child class。
class Selector {
constructor(parents, children) {
this.parents = document.querySelectorAll(parents);
this.childrenClass = children;
this.children = document.querySelectorAll(children);
this.selectall = () => {
this.children.forEach((elem) => {
elem.addEventListener("click", (e) => {
let parent = e.target.parentElement;
let children = parent.querySelectorAll(this.childrenClass);
children.forEach((elem) => {
elem.style.border = "2px solid red";
});
});
});
};
}
}
let one = new Selector(".parent", ".child");
one.selectall();