JavaScript进击之路(1)

一、DOM学习

1.5个常用的DOM方法(getElementById、getElementsByTagName、getElementsByClassName、getAttribute、setAttribute)

2.D为document(文档);O为object(对象)划分3种分别包含用户自行定义的对象、内建对象如Array,Math等、宿主对象由浏览器提供的对象;M为model(模型)

3.DOM可以抽象的理解为一棵树,用parent(父)、child(子)、sibling(兄弟)来描述各个元素节点之间的关系。

4.节点(node)包含元素节点(element node)如<body>、<li>等元素、文本节点(被包含在元素节点之内)、属性节点(对元素做出更加详细的描述)如title的内容

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>buy Something</title>
</head>
<body>
<h1>What to buy</h1>
<p title = "topic" id = "nodelem"> Don't forget to buy this stuff</p>
<ul id = "buySomeThing">
<li>book</li>
<li class = "sale">food</li>
<li  class = "sale">dog</li>
</ul>
</body>
</html>


获取元素3个方法:

 1.getElementById 获取并返回一个与给定id属性的元素节点对象

document.getElementById("buySomething");

2.getElementsByTagName 返回一个对象数组,每个对象对应文档中给定标签的一个元素

document.getElementsByTagName("li");
可以通过for循环获取每个元素的对象

var element = document.getElementsByTagName("li");
for(var i=0;i<element.length;i++){
alert(element.[i]);
}
还可以通过通配符获取该文档中所有的元素(获取当前文档中的所有元素对象)
alert(document.getElementsByTagName("*").length);
3.getElementsByClassName 返回相同类名元素的数组
document.getElementsByCalssName("sale");

获取和设置属性
1.getAttribute 获取元素对象的属性

var element = document.getElementsByTagName("p");
for(var k = 0;k<element.length;k++){
alert(element[k].getAttribute("title"));
}
如果该元素没有这个属性则返回为null
2.setAttribute 对元素节点的属性做修改
将上例中的title属性topic 修改为onepiece
var element = document.getElementsByTagName("p");
for(var k = 0;k<element.length;k++){
element[k].setAttribute("title","onepiece");
alert(element[k].getAttribute("title"));
}

扩展DOM属性

1.childNodes可以获取任何一个元素的所有子元素

var bodychild = document.getElementsByTagName("body").[0];
alert(bodychild.childNodes.length);
2.nodeType 返回节点属性值
*元素节点的nodeType的属性值为1;
*文本节点的nodeType的属性值为2;
*属性节点的nodeType的属性值为3;
3.nodeValue获得/设置文本节点的内容
var nodelem = document.getElementById("nodelem");
alert(nodelem.nodeValue);
返回的是null,因为该节点为元素节点,他的子节点为文本节点,故:
alert(nodelem.childNodes[0].nodeValue);
这样就返回为该文本节点的内容
修改文本节点的文本内容则如:
nodelem.childNodes[0].nodeValue = "Buy some storybooks";


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值