DOM节点说明

<h3>我喜欢的明星</h3>
<ul class="list">
    <li><img src="images/1.jpg"  width="100" alt="">花野真衣</li>
    <li><img src="images/2.jpg"  width="100" alt="">铃木千夏</li>
    <li><img src="images/3.jpg" width="100" alt="">井上合香</li>
    <li><img src="images/4.jpg" width="100" alt="">酒井美黛</li>
</ul>
<script>
    //页面中最重要的三个节点类型: 元素,属性,文本,
    //分别对应的整数是1,2,3
    //主要涉及四个: childNodes, nodeType,nodeName,nodeValue

    //每个节点都有一个childNodes属性,它是一个NodeList数组对象,保存着该节点下面的甩的子节点
    var list = document.getElementsByTagName('ul')[0]
    //list就是一个节点,查看一下它的childNodes属性
    console.log(list.hasChildNodes()) //查询该节点下面是否有子节点
    console.log(list.childNodes.length)  //查看有多少个节点
    console.log(list.childNodes)

    //你会发现他把回车换行符也当成了一个节点
    //每个节点对象还有一个nodeType属性,可以查看节点的类型
    console.log(list.childNodes[0].nodeType)  //3: 文本节点
    console.log(list.childNodes[1].nodeType)  //1: 元素节点
    //使用childNodes上的一个方法item(index)也可以获取到子节点
    console.log(list.childNodes.item(1).nodeType)  //1: 元素节点
    //通常我们只对元素节点感兴趣,所以需要对节点做一个判断
    var childs = list.childNodes
    var element = []  //创建一个空的数组容器,用来接收新数据
    for (var i=0; i< childs.length; i++) {
        if (childs[i].nodeType == 1) {
            element.push(childs[i])  //用入栈方式给数组添加数据
        }
    }
    console.log(element)  //现在就把所有的元素节点选了出来
    //因为选择父节点下面的元素节点很重要也很常用,所以提供一个快捷方法
    console.log(element[0].nodeName) //返回大写字母的标签名/元素对象名


    var h3 = document.getElementsByTagName('h3')[0]
    console.log(h3.firstChild.nodeType)
    //查看节点的值,只有文本节点也可以查看nodeValue
    console.log(h3.firstChild.nodeValue) //我喜欢的明星

   //之前还学习创建一个节点
    var li = document.createElement('li')
    li.innerHTML = '我爱PHP中文网'
    list.appendChild(li)
     //li的第一个子节点才是img
    element[0].childNodes[0].setAttribute('class','item')
    element[0].firstChild.setAttribute('class','item')
    //最后一个列表的第一个子节点img,设置样式
    element[element.length-1].firstChild.setAttribute('class','item')

    //全部设置,用循环来实现
    for (var i=0; i<element.length; i++){
        element[i].firstChild.setAttribute('class','item')
        //将li元素的文本设置为红色,选择当前li的第一个子节点的父元素
        element[i].firstChild.parentNode.setAttribute('class','red')
        element[i].setAttribute('class','red')  //这样写是一样的,上面是故意绕你学新东西
    }

</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值