为了账号安全,请及时绑定邮箱和手机立即绑定

getElementsByTagName()如何只获取第一层子标签的集合?

getElementsByTagName()如何只获取第一层子标签的集合?

TREASURE2016 2016-08-30 14:10:09
请各位大神不吝赐教!下面贴代码:<div id="main">    <div class="on">        <div class="item-top"></div>        <div class="item-dis"></div>    </div>    <div class="hide">        <div class="item-top"></div>        <div class="item-dis"></div>    </div>    <div class="hide">        <div class="item-top"></div>        <div class="item-dis"></div>   </div></div>我想获取id="main"下面的三组<div>改变它们的class值。用var oTab=document.getElementById("main");var oDivs=oTab.getElementsByTagName("div");得到的却是class="on"下面的div。如何才能只取id="main"的第一层div集合?
查看完整描述

4 回答

?
南秋艳时北雨凉

TA贡献13条经验 获得超6个赞

var oTab = document.getElementById('main');
var child = oTab.children;

for (var i = 0, len = child.length; i < len; i++) {
    child[i].className = '填入class值';
    }


查看完整回答
2 反对 回复 2016-08-30
?
stone310

TA贡献361条经验 获得超191个赞

你说的方法得出的应该是class="main"下面所有div的集合

如果只取id="main"的第一层div集合,用.children即可(oTab.children)

查看完整回答
3 反对 回复 2016-08-30
?
qq_奈奈奈_03699702

TA贡献19条经验 获得超5个赞

不考虑ie6,7可以用querySelectorAll.

当然也可以这样:

    var parent=document.getElementsByTagName("div")[0];
    var children=parent.childNodes,result=[];
    for(var i=0,len=children.length;i<len;i++){
        if(children[i].nodeName!=="#text"){
            result.push(children[i]);
        }
    }


查看完整回答
反对 回复 2016-08-30
?
我不是程序猿_我是攻城狮

TA贡献2条经验 获得超0个赞

 window.onload=function(){

      var idmain=document.getElementsByTagName("div")[0];  

 var on=idmain.childNodes[1];

 alert(on.innerHTML);

    }  

节点问题 on.innerHTML弹出的是这个 :

<div class="item-top">1</div>

  <div class="item-dis">2</div>

我觉得on就应该是那个div.on

查看完整回答
反对 回复 2016-08-30
  • 4 回答
  • 1 关注
  • 3608 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信