文档对象模型-DOM(二)
从NodeList中选择元素
方法一:item()方法,用于返回其中的单一节点,需要在方法的参数中指定所需元素的索引编号。
当其中没有任何元素时,执行代码是对资源的浪费。因此程序员会在执行代码之前,先检查一下在NodeList中是否至少包含一个节点。
可以使用length方法来实现。举例如下:
var elements = document.getElementsByClassName('hot');
if(elements.length>=0){
var firstItem = elements.item(0);
}
方法二:数组语法,可以使用括号语法来访问其中一个元素,就像访问数组中的单一项一样,需要在NodeList后面的中括号里指定所需的索引编号。举例如下:‘
var elements = document.getElementsByClassName('hot');
if(elements.length>=0){
var firstItem = elements[0];
}
使用class属性选择元素
var elements = document.getElementsByClassName('hot'); // 找到class值为'hot'的所有元素
if (elements.length > 2) {
var el = elements[2]; // 选择第三个元素并缓存到el
el.className = 'cool'; // 将第三个元素的值替换为'cool'
5 }
使用标签名选择元素
getElementsByTagName()方法
var elements = document.getElementsByTagName('li'); // 找到<li>标签的多有元素
if (elements.length > 0) {
var el = elements[0];
el.className = 'cool';
}
使用class选择器选择元素
querySelector() //返回第一个匹配的元素;querySelectorAll() //返回匹配的所有元素
var el = document.querySelector('li.hot');
el.className = 'cool';
var els = document.querySelectorAll('li.hot');
els[1].className = 'cool';
循环遍历NodeList
var hotItem = document.querySelectorAll('li.hot');
for(var i=0;i<hotItems.length;i++){
hotItems[i].className='cool';
}
对前后兄弟节点的操作
html代码:
<ul>
<li id="one" class="hot"><em>fresh</em> figs</li>
<li id="two" class="hot">pine nuts</li>
<li id="three" class="hot">honey</li>
<li id="four">balsamic vinegar</li>
</ul>
js代码:
// Select the starting point and find its siblings.
var startItem = document.getElementById('two');
var prevItem = startItem.previousSibling;
var nextItem = startItem.nextSibling;
// Change the values of the siblings' class attributes.
prevItem.className = 'complete';
nextItem.className = 'cool';
对子节点操作
html代码同上
js代码:
// Select the starting point and find its children.
var startItem = document.getElementsByTagName('ul')[0];
var firstItem = startItem.firstChild;
var lastItem = startItem.lastChild;
// Change the values of the children's class attributes.
firstItem.className = 'complete';
lastItem.className = 'cool';
文档对象模型-DOM(二)的更多相关文章
- (84)Wangdao.com第十八天_JavaScript 文档对象模型 DOM
文档对象模型 DOM DOM 是 JavaScript 操作网页的接口, 全称为“文档对象模型”(Document Object Model). 作用是将网页转为一个 JavaScript 对象,从而 ...
- JavaScript文档对象模型(DOM)——DOM核心操作
文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或XML)的标准编程接口. W3C已经定义了一系列DOM接口,通过这些DOM接口可 ...
- 文档对象模型 DOM
1 DOM概述 1.1 什么是DOM 文档对象模型 Document Object Model 文档对象模型 是表示和操作 HTML和XML文档内容的基础API 文档对象模型,是W3C组织推荐的处理可 ...
- 文档对象模型-DOM(一)
首先看一下DOM树结构: 每个节点都是一个对象,拥有方法和属性. 脚本可以访问以及更新DOM树(不是源代码). 针对DOM树的修改都会反映到浏览器. 访问并更新DOM树需要两个步骤: 一.定位到与 ...
- 文档对象模型(DOM)中的结点属性
在文档对象模型中,每个结点都是一个对象.DOM结点有三个重要的属性:nodeName .nodeValue和nodeType,分别表示结点名称.结点的值和结点的类型 一.nodeName,结点名称,只 ...
- 文档对象模型(DOM)
文档对象模型(DOM) DOM可以将任何HTML或XML文档描绘成一个由多层节点构成的结构.节点分为几种不同的类型:文档型节点.元素节点.特性节点.注释节点等共有12种节点类型.DOM1级定义了 ...
- HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. HTML DOM 树 通过可编程的对象模型,JavaScrip ...
- JavaScript学习总结(一)——ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
一.JavaScript简介 JavaScript是一种解释执行的脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型,它遵循ECMAScript标准.它的解释器被称为JavaScript引 ...
- 文档对象模型(DOM),你只需知道这些就够了!
官方定义--应用程序编程接口(API) 文档对象模型是用于HTML和XML文档的应用程序编程接口,它定义文档的逻辑结构,以及访问和操作文档的方式. "The Document Object ...
随机推荐
- PHP定时执行
参考一 test.bat D:\myamp\php\php.exe -q D:\myamp\Apache\htdocs\dingshi.php dingshi.php <?php ignore_ ...
- SVN代码提交
SVN代码提交(转载) 原文链接:http://www.softown.cn/post/100.html 1.SVN代码提交 1) 原则 先更新再提交: SVN是为了多人协同开发而产生的,如果你在提交 ...
- yum,httpd,php环境搭建方法
#删除已有的yum 1 rpm -qa|grep yum|xargs rpm -e --nodeps 2 ls 3 rpm -ivh python-iniparse-0.3.1-2.1.el6. ...
- Ubuntu 16.04下开启Mysql 3306端口远程访问
原文地址:传送门 0. 前言 网上看到很多开启Mysql远程访问端口,修改的配置文件我都没有找到. 特意查看了我的Linux版本 $ sudo lsb_release -a 显示如下: Distrib ...
- Oracle迁移到DB2常用转换
因为项目需要,要将Oracle上的东西转移到DB2,于是收集整理了一些需要修改点的注意事项,拿出来大家分享. ORACLE和DB2实现相同功能的实例(主要以Oracle8I和DB2 7.X为例,已测试 ...
- Response 部分功能
设置状态码的方法: void setStatus(int sc) void setStatus(int sc, String sm) 设置响应头的方法: void setHeade ...
- eclipse中的aptana插件的安装
先下载 aptana插件包 我安装的eclipse版本是 indido版本号的. 三步骤: 1.将aptana解压到eclipse的目录下 2.打开eclipse目录下的dropins文件,新建一 ...
- bufferknife框架的正确使用方式 -终于他么知道了
1.由于ButterKnife从7.x到8.x后,运行时和编译器被分开来,你还需要配置 apt ‘com.jakewharton:butterknife-compiler:8.1.0’,在projec ...
- linux中MySQL本地可以连接,远程连接不上问题
1.网络或防火墙问题 (1)检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题 (2)看端口号3306是不是被防火墙挡住了,telnet 182.6 ...
- Exercise03_12
import java.util.Scanner; public class Palindrome { public static void main(String[] args){ int a; S ...