属性就是属性,元素作为一个对象,当然要具有一些属于它自己的属性。jQuery 里面关于属性的方法要狭隘一些,指的是我们写在元素标签中的属性。
如果是在以前,这种标签中的属性还是蛮多的。现在我们有了 CSS,这些属性就变得冷落了,不过我们前面还是学到了一些,比如链接元素所要链接到的地址,图片元素所引用的图片地址,……这些属性目前还没有什么其他的替代方式[1],于是我们就还有操作它们的需求。
方法也简单:
let link_url = $('a').attr('href')
元素的属性有很多种,但都是属性,所以操作的方法也都一样,用 attr
方法就好,但是我们要在后面的小括号里,说清楚具体要操作的是哪一个属性。这个要求不算过分,上面的代码,就是通过这样的方式去获取链接中的链接地址[2]。
这是获取已有的属性值的方法,反过来我们还需要知道如何去设置某个属性的值。[3]
$('a').attr('href', 'https://dmnydn.com/')
道理很简单,我们要告诉程序,我们要操作的是哪一个属性,又把这个属性设置为怎样的值。这就需要给出两个参数,第一个是要操作的属性,而第二个是这个属性要设置为的值。你看这和我们前面所学的函数是不是很相似?把后面小括号中的内容看作传递给某个函数的参数,这样就很好理解了。
仅仅如此,好像我们也没有必要把它单独放在一章里去讲,这个和 html
、text
、val
方法十分类似。
但是,因为属性所包含的内容很宽泛,导致这个方法可以去做的事情也非常的多(虽然可能它并不专业)。可以用来设置或者修改链接的地址,图片的地址,这个我们上面讲了。
一个元素的 id 和 class,也是这个元素的属性吧?
我们学习样式表的时候,如果行内样式表,就是作为 style 属性,直接放在元素的标签内,这也是属性吧?
它不专业,但不等于它做不到。反正只要有需要,它就可以对这些属性进行设置、修改、获取。剩下的就看实际需求了,没有什么是绝对正确的方法,只有适合当前需求的方法。
如果我不需要某个属性了,那么我可以把它设置为默认值,或者设置为空值,这个要看具体的属性。或者我根本分不清吧,那就干脆把它移除好了。
$('a').removeAttr('href')
这个方法可以让我们移除元素的指定属性。
>注释 1: 坚持要替代也不是不可以,但是,如果没有特殊情况,这样的替代就没什么意义。不像 CSS 取代众多样式属性那样带来了极大的提升。
>注释 2: 这只是简单的示例,这个代码要在链接元素唯一的时候才能够起作用。如果这个选择器所选中的元素不唯一,又会发生什么情况呢?大家可以思考一下,并自行尝试,后面我们会讲到相关的内容。
>注释 3: 在设置属性值的时候,我们反倒不再需要去关注,这个选择器究竟选择了多少元素。总之,所有被选中的元素都做相应设置就行了。移除属性的操作同理。
暂无评论内容