资讯专栏INFORMATION COLUMN

getAttribute() 与 attr() 的区别

Salamander / 2719人阅读

摘要:一直以为和都是获取元素属性的方法,只是一种是写法,一种是写法,但其实它们是有区别的。描述中的一组元素应该指的是对象,而不是多个元素组成的集合,因为如果方法的执行主体是集合,浏览器同样会报错获取的是正确使用方式获取的是

一直以为 getAttribute() 和 attr() 都是获取元素属性的方法,只是一种是 JS 写法,一种是 JQ 写法,但其实它们是有区别的。

主要区别

调用 getAttribute() 的主体必须是元素(Object Element)
调用 attr() 的主体必须是对象(Object Object)

JS写法:getAttribute()

getAttribute() 是元素(Element)下的一种方法,因此想调用这个方法,必须确保它的调用主体是元素,否则会报错。

正确使用方式:


    
        
    
    
        
错误使用方式:


    
        
    
    
        

通过 JQ 选择器获取 div,此时的 div 是对象(Object)也就无法调用 getAttribute() 方法,浏览器(Safari)会报错如下:

TypeError: div.getAttribute is not a function. (In "div.getAttribute("custom")", "div.getAttribute" is undefined)
JQ写法:attr()
Get the value of an attribute for the first element in the set of matched elements.

jQuery API Documentation 中对 attr() 方法——准确说是 attr( attributeName ) 方法的描述是“获取一组相匹配元素中首个元素的属性值”。
描述中的“一组元素”应该指的是对象(Object),而不是多个元素组成的集合(HTMLCollection),因为如果方法的执行主体是集合,浏览器同样会报错:



    
        
        
    
    
        
正确使用方式:


    
        
        
    
    
        

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/57265.html

相关文章

  • getAttribute() attr() 区别

    摘要:一直以为和都是获取元素属性的方法,只是一种是写法,一种是写法,但其实它们是有区别的。描述中的一组元素应该指的是对象,而不是多个元素组成的集合,因为如果方法的执行主体是集合,浏览器同样会报错获取的是正确使用方式获取的是 一直以为 getAttribute() 和 attr() 都是获取元素属性的方法,只是一种是 JS 写法,一种是 JQ 写法,但其实它们是有区别的。 主要区别 调用 ge...

    codeKK 评论0 收藏0
  • getAttribute() attr() 区别

    摘要:一直以为和都是获取元素属性的方法,只是一种是写法,一种是写法,但其实它们是有区别的。描述中的一组元素应该指的是对象,而不是多个元素组成的集合,因为如果方法的执行主体是集合,浏览器同样会报错获取的是正确使用方式获取的是 一直以为 getAttribute() 和 attr() 都是获取元素属性的方法,只是一种是 JS 写法,一种是 JQ 写法,但其实它们是有区别的。 主要区别 调用 ge...

    superPershing 评论0 收藏0
  • [译]HTML attributeDOM property之间区别

    摘要:,还有三者都返回相同的。这篇文章我将解释和的区别。特性特性由定义,所有出现在标签内的描述节点都是特性。属性属性属于对象,实质就是中的对象。尤其是有些类型本该是布尔类型的特性。浏览器会自动将这些值转变成布尔值传给属性。 原文:http://joji.me/en-us/blog/htm... 当我们通过js处理DOM对象时非常容易将attribute(特性)和property(属性)混淆。...

    wmui 评论0 收藏0
  • jQuery attr prop 区别

    摘要:先提出问题对于这类值是的属性,用的或方法进行读取或设置值是有区别的。因此,如果你想知道文本框的当前值,则读取。的值并不会随着的状态而作出相应改变,而会。为对象设置值的安全做法避免内存泄漏是使用。参考翻译地址的与的区别 先提出问题:对于 checked 这类值是 true/false 的属性,用 jQuery 的 attr 或 prop 方法进行 读取或设置值是有区别的。 在看 jQue...

    kk_miles 评论0 收藏0
  • 前端中 Attribute & Property

    摘要:在使用上面,已经表明态度模板绑定是通过和事件来工作的,而不是。更改的值,相当于再次初始化。原生操作读写删除采用的是更改的方式,基本上对应中提供的三个操作的方法。 为了在翻译上显示出区别,Attribute一般被翻译为特性,Property被译为属性。 在使用上面,Angular已经表明态度 Template binding works with properties and even...

    fou7 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<