详解JavaScript中选取元素的所有方法

DOM中选取文档元素的方法总共有5种:
1.通过id值。
2.通过name属性值。
3.通过指定的标签名。
4.通过class类。

5.通过css选择器。


下面我就这五种方法详细解释一下吧。

1.通过ID选取元素:  document.getElementById()
    任何元素都可以有一个id属性,在文档中该值必须唯一,所以该方法返回一个DOM对象。通过id获取元素是最简单最常用的选取元素的方法。
getElementById(id值)。注意这个方法是Document对象的方法。所以使用方法通常如下:
var el = document.getElementById("id");


2.通过name属性选取元素:  document.getElementsByName()

    多个元素可能有同样的名字,所以该方法返回NodeList对象。
getElementsByName(name值)定义在HTMLDocument类中,而不是在Document类中,所以它只对HTML文档有用,对XML文档无用。
在对form、img、iframe、applet、embed、object元素设置name属性时要注意一点,这些元素的属性值将自动成为window和Document对象的对应属性。所以如果通过name属性值查找以上几个特殊的元素可以像获取属性值一样操作,如:
//针对<form name="wlk">元素,得到Element对象
var form = document.wlk;
但是,不太推荐这样做,最好还是显示的调用getElementsByName()来查找元素。注意,getElementsByName()是HTMLDocument类中的方法,所以使用通常如下:
var el = document.getElementsByName("name");



3.通过标签名查找:getElementsByTagName()
    getElementsByTagName("tagname")也返回NodeList对象,在NodeList对象中返回的元素按照在文档中的顺序排序的。所以可如下获取文档的第一个p元素:
var p = document.getElementsByTagName("p")[0];
HTML标签不区分大小写,故而在使用该方法是也不用区分大小写。如果传参数为通配符*,就返回文档中所有的元素。
该方法给是Element对象的方法,所以你 既可以在document上调用,也可以在element上调用
像getElementsByName()一样,该方法对form、images等标签也可像操作属性一样操作。如:
document.forms.wlk或者document.forms[1]。当然还是推荐显示调用getElementsByTagName()。


4.通过class属性选取元素:getElementsByClassName()
    getElementsByClassName()方法基于class属性值中的标志符来选取成组的文档元素。 类似getElementsByTagName(),在HTMl文档和HTML元素上都可调用getElementsByClassName(),它的返回值是NodeList对象,且是 实时的。它的参数只需要一个字符串,但该字符串可以由多个空格隔开的标志符组成。只有当元素的class属性值包含指定的标志符时才匹配,不过标志符的顺序无关紧要。
在标准模式下,该方法区分大小写,在兼容模式下,不区分大小写。


5.通过css选择器选取元素:querySelectorAll()querySelector()
    querySelectorAll(),它接受包含一个css选择器的字符串参数,返回一个表示NodeList对象。注意,该NodeList对象 不是实时的:它包含在调用时刻选择器所匹配的元素,但它并不更新后续文档的变化。
如果没有匹配的元素,返回空的NodeList对象。如果选择器语法错误,将跑出一个异常。
还有一个querySelector()方法,与querySelectorAll()工作原理一样,不过它只返回第一个匹配的元素,如果没有匹配的,返回null。
这两个方法在 element上也有定义,所有在元素上也可用
注意,css定义了“:first-line”和“:first-letter”等伪元素,它们在文档中并不是实际元素,所以css选择器选取元素时不会匹配它们。
querySelectorAll()是终极的选取元素的办法:它是一种非常强大的技术,通过它客户端JavaScript程序可以选择它们想要操作的元素。比如jQuery就是基于css选择器的查询作为编程核心,命名为$()。


备注:
    document.all[]。
该方法现在已经废弃 不应该使用了。但是它在最开始引入时是革命性的,难免在比较老的网站或者程序中或遇到。
document.all[0];//选取文档的第一个元素。
document.all["bar"];//选取id或name为bar的元素。
document.all.tags("div");//文档中所有的div元素。
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript的set和get方法是用于定义对象的属性的访问器方法。它们允许我们对属性的读取和赋值进行控制和处理。 通过set方法,我们可以在给属性赋值时执行一些操作。例如,我们可以检查赋给属性的值是否符合特定的规则或范围。如果不符合规则,我们可以抛出一个异常或执行其他的处理逻辑。这种方式可以防止不合理的值被赋给属性。 通过get方法,我们可以在读取属性值时执行一些操作。这样,我们可以对属性的读取进行一些处理,例如计算或格式化。这些操作可以帮助我们从底层数据提取所需的值。 下面是一个使用set和get方法的简单示例: ``` const obj = { _age: 0, set age(value) { if (value < 0) { throw new Error('年龄不能为负数'); } this._age = value; }, get age() { return this._age; } }; obj.age = 20; // 调用set方法 console.log(obj.age); // 调用get方法,输出20 obj.age = -10; // 调用set方法,抛出异常 ``` 在上面的示例,我们定义了一个名为`age`的属性,使用了set和get方法。在set方法,我们检查给属性赋值的值是否小于0。如果小于0,则抛出一个错误。在get方法,我们直接返回`_age`的值。 总结一下,set和get方法可以让我们对属性的读取和赋值进行控制和处理。通过这种方式,我们可以确保属性的值符合我们的要求,同时还可以在属性的读取和赋值过程执行一些其他操作。这样,我们可以更好地控制和管理对象的属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值