[JavaScript]DOMAPI

获取DOM节点对象

var oHeader = document.getElementById("header");
表示直接获取ID名称为header的标签,返回对应的节点对象(单个),如果有多个ID名为header的标签,也只获取第一个标签

var aP = document.getElementdByTagName("p");
表示获取文档中的所有p标签,返回一个DOM集合,类型为NodeList类数组对象,如果只找到了一个p标签返回的也是类数组集合

var aDes = document.getElementsByClassName("des");
获取所有类名为des的标签,返回一个DOM集合,类型也为NodeList类数组对象,只找到一个也返回类数组集合,这个方法是在IE9以上版本的浏览器中才新加入的。

H5新增的方法:
var oHeader = document.querySelector("#header");
参数中填写的格式是CSS选择器的规范,也就是跟CSS的选择器写法一模一样,除了伪元素不可以(因为伪元素并不是一个实体标签)

var aDes = document.querySelectorAll(".des");
同样是填CSS选择器,这个方法与上面的区别就是querySelectorAll可以获取到多个标签,并且返回的都是类数组对象,哪怕只获取到一个标签对象也是。而querySelector是获取一个单个的标签对象,返回的也是单个的对象,就算有多个符合条件的标签对象,也只会获取到第一个。

获取的DOM元素命名格式

一般来说我们在具体的标签名前加上一个小前缀来规范化命名方式,有两种前缀,分别是字母o和字母a

字母o前缀

表示英文单词only,适用于获取单一节点对象元素命名,一般用于querySelector,getElementById方法
示例:

<body>
	<div id="wrap">
		<ul id="list">
			<li></li>
			<li></li>
		</ul>
	</div>
</body>
<script>
	var oWrap = querySelector("#wrap");
	var oList = getElementById("list");
</script>
字母a前缀

表示英文单词all的意思,适用于获取多个节点,也就是集合,一般用于getElementsByClassName,getElementsByTagname,querySelectorAll方法
示例:

<body>
	<div id="wrap">
		<ul id="list">
			<li></li>
			<li></li>
		</ul>
		<p class="cont">sgsgdwgdg</p>
		<p class="cont">sgsgdwgdg</p>
		<p class="cont">sgsgdwgdg</p>
		<a class="link">sgdgs</a>
		<a class="link">sgdgs</a>
		<a class="link">sgdgs</a>
	</div>
</body>
<script>
	var aLi = querySelectorAll("#wrap li");
	var aP = getElementsByClassName("cont");
	var aA = getElementsByTagname("a");
</script>

对象属性和标签属性概念的区分

对象属性是指使用js获取到标签对象后,再使用对象.属性得到的值,而标签属性则是获取的我们在标签属性那里原原本本写的东西
我们使用getAttribute方法来演示这个区别,getAttribute方法会将我们在标签属性里写的东西以字符串的形式返回,而如果使用对象.属性的方法,那么得到的就是标签属性的值
注意:
1.如果这里使用的是自定义的标签属性,不是标签自有的属性,那么getAttribute方法仍然能够拿到值,但是以对象.属性方式就无法拿到,值是undefind
2.setAttribute方法,设置标签属性,这里要注意,如果我们以对象.属性的方法来设置一个属性的值,是在这个属性的结果值上进行设置的,而setAttribute方法则是相当于直接在标签上重写的情况。如设置标签的width属性,如果以对象.width = "100px"是不正确的,这样就相当于将width属性的值设置成100px,肯定会报错的,以对象.setAttribute(“width”,“100px”)方法就相当于在标签上将<p width="100px"></p>所以是正确的
示例:

<body>
	<img id="pic" style="outline:none;" class="photo red" src="images/bird.png" width="100px" height="100" alt="bird" title="你猜猜我是什么鸟" my="200">
<script>
	var oImg = document.querySelector("#pic");
	
	console.log(oImg.getAttribute("width");//输出100px
	console.log(oImg.width);//输出100

	console.log(oImg.getAttribute("my");//输出200
	console.log(oImg.my);//输出undefind
	
</script>
</body>
判断某一个属性是否有某属性

我们可以使用hasAttribute()方法来判断节点对象是否有某个属性,这里就算是自定义属性也是可以判断的
示例:

oImg.hasAttribute("width");//返回true
oImg.hasAttribute("height");//返回true
oImg.hasAttribute("zidinyi");//如果没有在标签里写这个属性,则返回false,否则返回true

DOM节点对象的属性

DOM的每个节点对象都有一系列属性,用于存储该节点的状态和信息

element.title 		//设置或返回元素的title属性
element.textContent //设置或返回一个节点和它的文本内容
element.innerText 	//设置或返回一个节点和它的文本内容
<p>p标签</p>
var op = document.querySelector("p");
console.log(op.textContent);
console.log(op.innerText);
//这两个输出的都是p标签中的文字内容

<div id="wrap">
	<h3>标题内容</h3>
	div内容
</div>
var oP = querySelector("#wrap");
//获取元素内的文本内容,但是会过滤掉标签,打印的文本不包括<h3></h3>这样的标签
console.log(oP.textContent);
console,log(oP.innerText);

//获取元素内的所有内容,包括标签
console.log(oP.innerHTML);
//可以获取到oP这个对象内部的标签对象,打印的是<h3>标题内容</h3>

element.tagName 	//作为一个字符串返回某个元素的标记名(大写)
element.className 	//获取标签的class属性值

nodelist.length 	//返回节点列表的节点数目。
nodelist.item(idx) 	//返回某个元素基于文档树的索引 与 nodelist[idx]是相同的作用
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员云锦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值