文档对象模型-DOM(二)

摘要:
从NodeList:item()方法中选择元素方法1,该方法用于返回单个节点。您需要在方法参数中指定所需元素的索引号。当没有元素时,执行代码就是浪费资源。因此,程序员将在执行代码之前检查NodeList中是否至少有一个节点。您可以使用长度方法执行此操作。

从NodeList中选择元素

方法一:item()方法,用于返回其中的单一节点,需要在方法的参数中指定所需元素的索引编号。

           当其中没有任何元素时,执行代码是对资源的浪费。因此程序员会在执行代码之前,先检查一下在NodeList中是否至少包含一个节点。

      可以使用length方法来实现。举例如下:

1             var elements = document.getElementsByClassName('hot');
2             if(elements.length>=0){
3                 var firstItem = elements.item(0);
4             }

方法二:数组语法,可以使用括号语法来访问其中一个元素,就像访问数组中的单一项一样,需要在NodeList后面的中括号里指定所需的索引编号。举例如下:‘

1             var elements = document.getElementsByClassName('hot');
2             if(elements.length>=0){
3                 var firstItem = elements[0];
4             }

使用class属性选择元素

 1 var elements = document.getElementsByClassName('hot'); // 找到class值为'hot'的所有元素
 2 if (elements.length > 2) {
 3   var el = elements[2];    // 选择第三个元素并缓存到el
 4   el.className = 'cool';   // 将第三个元素的值替换为'cool'
 5 }

使用标签名选择元素 

getElementsByTagName()方法
1 var elements = document.getElementsByTagName('li'); // 找到<li>标签的多有元素
2 if (elements.length > 0) {
3   var el = elements[0];
4   el.className = 'cool';
5 }

使用class选择器选择元素

  querySelector()  //返回第一个匹配的元素;querySelectorAll() //返回匹配的所有元素

1 var el = document.querySelector('li.hot');
2 el.className = 'cool';
3 var els = document.querySelectorAll('li.hot'); 4 els[1].className = 'cool';

循环遍历NodeList

1 var hotItem = document.querySelectorAll('li.hot');
2 for(var i=0;i<hotItems.length;i++){
3     hotItems[i].className='cool';
4 }

 对前后兄弟节点的操作

 html代码:

1       <ul>
2         <li   class="hot"><em>fresh</em> figs</li>
3         <li   class="hot">pine nuts</li>
4         <li   class="hot">honey</li>
5         <li id="four">balsamic vinegar</li>
6       </ul>

js代码:

1 // Select the starting point and find its siblings.
2 var startItem = document.getElementById('two');
3 var prevItem = startItem.previousSibling;
4 var nextItem = startItem.nextSibling;
5 // Change the values of the siblings' class attributes.
6 prevItem.className = 'complete';
7 nextItem.className = 'cool';

对子节点操作

 html代码同上

js代码:

1 // Select the starting point and find its children.
2 var startItem = document.getElementsByTagName('ul')[0];
3 var firstItem = startItem.firstChild;
4 var lastItem = startItem.lastChild;
5 // Change the values of the children's class attributes.
6 firstItem.className = 'complete';
7 lastItem.className = 'cool';

  

免责声明:文章转载自《文档对象模型-DOM(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程Hadoop Hive与Hbase关系 整合下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Python之路】特别篇--ECMA对象、DOM对象、BOM对象

ECMA对象从传统意义上来说,ECMAScript 并不真正具有类。事实上,除了说明不存在类,在 ECMA-262 中根本没有出现“类”这个词。 ECMAScript 定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。 var o = new Object(); 对象的概念与分类: 由ECMAScript定义的本地对象.独立于宿主环境的 ECMAS...

多进程浏览器、多线程页面渲染与js的单线程

线程与进程 说到单线程,就得从操作系统进程开始说起。在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位。任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。后来,随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,...

Chrome开发者工具面板 F12 调试大全 记录

面板上包含了Elements面板、Console面板、Sources面板、Network面板、Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。这些按钮的功能点如下: Elements:查找网页源代码HTML中的任一元素,手动修改任一元素的属性和样式且能实时在浏览器里面得到反馈。...

DOM五大对象

1、Window 对象:Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 2、Navigator 对象: Navigator 对象包含的属性描述了正在使用的浏览器。可以使用这些属性进行平台专用的配置。...

DOM节点操作

为什么学习节点操作?节点操作的目的是为了获取元素 获取元素通常使用两种方法 1、利用DOM提供的方法获取元素 逻辑性不强,且比较繁琐 2、利用节点层次关系获取元素 利用父子兄节点关系获取元素 逻辑性强、但是兼容性稍差 这两种方法都可以获取节点元素,相对而言节点操作更简单 节点概述 网页中所有内容都是节点(文本、标签、注释等),在DOM中,节点使用node来...

Javascript:再论Javascript的单线程机制 之 DOM渲染时机

Javascript:再论Javascript的单线程机制 之 DOM渲染时机 背景 Javascript是单线程事件驱动的,所有能看到的Javascript代码都是在一个线程执行,定时器回调和AJAX回调会在适当的时刻插入队列等待Javascript线程调度执行,今天想测试一下DOM渲染的线程与时机,具体的问题是: 修改DOM会立即显示在UI中吗? 一个...