如果其中一位父母有某个class
,我想向div
添加第二个class
这就是我所做的:
var h = document.querySelectorAll('h1,h2,h3,h4,p'); //GET ALL ELEMENTS
for (var i = 0; i < h.length; i++) { // LOOP THROUGH IT AND ADD A CLASS
if (h[i].classList.length === 0) {
h[i].classList.add("fontFit");
}
}
var image_large = document.getElementsByClassName('image_large');
var fontFit = document.getElementsByClassName('fontFit');
if ($(fontFit).parents().hasClass('image_large')){ //IF `fontFit` has a parent named `image_large`; execute the `for` loop.
for (var j = 0; j < image_large.length; j++) {
if (fontFit[j].classList.length === 1) {
fontFit[j].classList.add('addClass');
}
}
}
它不会给我一个错误,但我不知道它为什么不起作用。
答案 0 :(得分:0)
您的代码遇到逻辑错误。您的代码似乎假设首先执行if语句,fontFit
中的所有元素都将具有类image_large
的父级。但事实并非如此,有些人可能没有,你宁愿在循环中进行测试
for (var j = 0; j < fontFit.length; j++) {
//note uses Element#closest, a more recently added DOM method
//if no parent with that class is found null is returned
if( fontFit[j].closest('.image_large') ){
fontFit[j].classList.add('addClass');
}
}
当然,您可以通过使用正确的选择器直接查找属于fontFit
的{{1}}类的所有元素,然后循环遍历该集合
image_large