JavaScript中的DOM查询方法(全)——配合练习熟练掌握dom查询方法

学习JavaScript中的DOM(文本对象模型)就是主要学习它的查询,查询是DOM的核心所在,而它围绕着一个单词—document

 一、理解DOM


当HTML加载到内存中时,会形成一个树形结构,包括了四种类型的节点:(如下图)

        文档节点==>document
        元素节点==>标签
        属性节点==>标签的属性
        文本节点==>标签体

可以看到处于最上层的文档节点(document)可以访问下面的所有节点来获取对象进而操作对象。

二、 DOM的查询方法

document.getElementById(“id值”) 通过id属性获取一个元素节点对象
document.getElementsByName(“name属性值”) 通过name属性获取一组元素节点对象
document.getElementsByTagName(“标签名”) 可以根据标签名来获取一组元素节点对象
document.getElementByClassName(“class属性值”)  返回多个对象
obj.getElementsByTagName(); 获取元素下的一组节点
obj.childNodes会获取包括文本节点在内的所有节点
obj.children可以获取当前元素的所有子元素,不包括空白文档了
obj.firstChild 第一个子节点(包括空白的文本节点)
obj.firstElementChild 获取当前元素的第一个子元素
obj.parentNode获取当前元素的父元素
obj.previousSibling返回前一个兄弟节点 也有可能获取到空白的文本
obj. previousElementSibling 

返回前一个兄弟元素,不包括空白文本

注意:不支持ie8及以下的浏览器

document.body获取body标签
document.documentElement;获得html根元素
document.all页面中的所有的元素
document.getElementsByTagName("*")页面中的所有的元素
document.querySelector()

1、需要一个选择器的字符串作为参数,可以根据一个css选择器

来查询一个元素节点对象
2、该方法总会返回唯一的元素,如果满足条件的元素是多个,

    那么它只会返回第一个
3、IE8以上的都适用

document.querySelectorAll()1、该方法和qureySelector()用法类似,
                  不同的是它将会将符合条件的元素封装到一个数组中返回
2、即使符合条件的元素只有一个,它也会返回数组

三、dom查询练习

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Untitled Document</title>
    <link rel="stylesheet" type="text/css" href="./css/css.css" />
  </head>

  <body>
    <div id="total">
      <div class="inner">
        <p>你喜欢哪个电影?</p>

        <ul id="movie">
          <li id="bj">北京,我爱你</li>
          <li>爱上西雅图</li>
          <li>叶问3</li>
          <li>前任3</li>
        </ul>

        <br />
        <br />

        <p>你喜欢哪款游戏?</p>

        <ul id="game">
          <li id="rl">王者荣耀</li>
          <li>消消乐</li>
          <li>极品飞车</li>
          <li>魔兽</li>
        </ul>

        <br />
        <br />

        <p>你手机的操作系统是?</p>

        <ul id="phone">
          <li>IOS</li>
          <li id="android">Android</li>
          <li>Windows Phone</li>
        </ul>
      </div>

      <div class="inner">
        gender:
        <input class="hi" type="radio" name="gender" value="male" />
        Male
        <input class="hi" type="radio" name="gender" value="female" />
        Female
        <br />
        <br />
        name:
        <input type="text" name="name" id="username" value="abcde" />
      </div>
    </div>
    <div id="btnList">
      <h3>需求如下:</h3>
      <div><button id="btn09">查找#bj节点</button></div>
      <div><button id="btn10">查找所有li节点</button></div>
      <div><button id="btn11">查找name=gender的所有节点</button></div>
      <div><button id="btn12">获取class名为inner的节点</button></div>
      <div><button id="btn01">查找#city下所有li节点</button></div>
      <div><button id="btn02">返回#city的所有子节点</button></div>
      <div><button id="btn03">返回#phone的第一个子节点</button></div>
      <div><button id="btn04">返回#bj的父节点</button></div>
      <div><button id="btn05">返回#android的前一个兄弟节点</button></div>
      <div><button id="btn06">返回#username的value属性值</button></div>
      <div><button id="btn07">设置#username的value属性值</button></div>
      <div><button id="btn08">返回#bj的文本值</button></div>
    </div>
  </body>
</html>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕穗子姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值