jQuery中prop()和attr()之间的区别以及何时使用attr()和prop()

这个问题在这里已经有了答案:

  • .prop()vs .attr()17答案

  • 从文档

    属性和属性之间的差异在特定情况下很重要。 在jQuery 1.6之前,.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。 从jQuery 1.6开始,.prop()方法提供了显式检索属性值的方法,而.attr()检索属性。

    例如,应该检索selectedIndex,tagName,nodeName,nodeType,ownerDocument,defaultChecked和defaultSelected并使用.prop()方法进行设置。 在jQuery 1.6之前,这些属性可以使用.attr()方法检索,但这不属于attr范围。 这些没有相应的属性,只是属性。

    在评论后更新

    您可以为HTML元素设置一个属性。 您在编写源代码时定义它,一旦浏览器解析代码,就会创建相应的DOM节点,这是一个具有属性的对象。

    简单的例子可以是..

    <input type="test" value="test" id="test" />
    

    这里的type,value,id是属性。一旦浏览器渲染它,你会得到像align,alt,autofocus,baseURI,checked等其他属性。

    链接,如果你想阅读更多关于此


    .attr()更改该HTML标记的属性。

    .prop()根据DOM树更改该HTML标记的属性。

    正如此链接中的示例所示。 输入字段可以具有属性“值”。 这将等于您输入的默认值。 如果用户更改输入字段中的值,则属性“值”在DOM树中发生变化,但原始属性保留。

    所以基本上,如果您想为HTML标记的属性设置默认值,请使用.attr()函数。 如果用户可以更改该值(如输入,复选框,收音机等),则使用.prop()函数获取最新值。

    http://jquery-howto.blogspot.com/2011/06/html-difference-between-attribute-and.html


    JQuery是一个不断变化的库,有时他们会定期进行改进。 .attr()用于从HTML标签获取属性,虽然它功能完善,但后来添加了prop()以获得更多语义,并使用“checked”和“selected”等无值属性更好地工作。

    建议如果您使用的是更高版本的JQuery,则应尽可能使用.prop()。

    链接地址: http://www.djcxy.com/p/4737.html

    上一篇: difference between prop() and attr() in jQuery and when to use attr() and prop()

    下一篇: jQuery attr vs. prop, there are a list of props?