我在点击/ mousedown操作上有几个名为.tag
的类我想要在所有clear:both
项目上将clear:none
更改为.tag
。或者将班级.clearNone { clear:none; }
添加到所有代码中。
到目前为止我没有运气的尝试:
function mouseDown(e) {
window.addEventListener('mousemove', sizePanel, true);
// Using ID works
var tagsCol = document.getElementById("tags-col");
tagsCol.classList.add("width100");
// Using class does not
var tag = document.getElementsByClassName("tag");
tag.classList.add("clearNone");
};
CSS
.tag {
overflow: hidden;
float: left;
position: relative;
margin: 0 10px 10px 0;
padding: 5px 10px;
width: auto;
cursor: pointer;
clear: both;
@include rounded(4px);
}
.clearNone { clear: none; }
你将如何做到这一点?请注意,有数百个.tag
的
答案 0 :(得分:5)
不要那样做。
相反,将标记类名添加到共同的祖先元素,然后使用CSS规则:
.SomeClassName .tag {
clear: both;
}
答案 1 :(得分:2)
要直接解决问题,您需要循环返回的元素:
var tags = document.getElementsByClassName("tag");
for (var x = 0; x < tags.length; x++)
tags[x].classList.add("clearNone");
但与Slaks' answer一样,有一种更好的方法可以实现这一目标。
答案 2 :(得分:1)
您可以尝试以下代码(编辑感谢@Bergi)
var tags = document.getElementsByClassName("tag");
for(var i=0; i<tags.length; ++i){
if(typeof tags[i] === "object" && "classList" in tags[i]){
tags[i].classList.add("clearNone");
}
}