JS修改类名字
总元素下有很多子元素,class名字为xq,但是我想写一段js为第1+3n的子元素(如1,4,7,10)修改类名字,如‘xqxe’。求完整代码...
总元素下有很多子元素,class名字为xq ,但是我想写一段js为第1+3n的子元素(如1,4,7,10)修改类名字,如 ‘xq xe’。求完整代码
展开
2个回答
展开全部
给你一段代码,这个是考虑到除了class="xq"以外,还有其他class的元素存在的情况,如果子元素中只有class="xq"的元素,代码还可以简化。
另外,1+3n不知道指的是下标,还是日常使用中的顺序,这里可以根据情况调整下if条件。
(function(){
var p = document.getElementById('pNode'),
cs = [];
for (var i = 0, eles = p.getElementsByTagName('*'), len = eles.length; i < len; i++) {
if (eles[i].className === "xq") {
cs.push(eles[i]);
}
}
for (var j = 0, cslen = cs.length; j < cslen; j++) {
if (j % 3 === 1) {
cs[j].className = 'xq xe';
}
}
})();
希望是你想要的答案,有问题可再追问,望采纳~
追问
答案的意思确实是我想要的,但是我这写有一点蛋疼,因为顺序是
id="syFocusThumb"-> class="contentdiv"->class="picScroll-left" ->class="bd"-> class="picList" ->class="xq_area"其中class="contentdiv"多个
改成class="xq_area pad_no"
追答
和你的结构吻合的哈,更嵌套层级没太大关系,看我给你完整DEMO:
<div id="syFocusThumb">
<div class="contentdiv">
<div class="picScroll-left">
<div class="bd">
<div class="picList"><span class="xq_area"></span></div>
</div>
</div>
</div>
</div>
<script>
(function(){
var p = document.getElementById('syFocusThumb'),
cs = [];
for (var i = 0, eles = p.getElementsByTagName('*'), len = eles.length; i < len; i++) {
if (eles[i].className === "xq_area") {
cs.push(eles[i]);
}
}
for (var j = 0, cslen = cs.length; j < cslen; j++) {
if (j % 3 === 1) {
cs[j].className = 'xq_area pad_no';
}
}
})();
</script>
执行结果如图:
字数超限了,中间contentdiv你多加几个,你看是这样的吧,呵呵~
PS:如果使用jQuery就更方便了~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询