“反对”的行为attribute:prop()vs attr()

时间:2014-06-12 12:21:10

标签: javascript jquery html

有人可以在jQuery中解释这个(奇怪的)行为吗?这是小提琴:

http://jsfiddle.net/hdLMu/1/

问题是,为什么jQuery在调用rel方法时不会将tooltip设置为.prop(),而.attr()工作正常?

此外,这两种方法在设置type时都有效。 我唯一的猜测是.prop()执行了一些验证?由于rel

不允许使用button

1 个答案:

答案 0 :(得分:1)

jQuery 1.6 attr()用于HTML属性和对象属性之前。

jQuery 1.6 attr()用于HTML属性,例如hrefrelclass或任何其他。

prop()现在用于

等对象属性
var Obj = {
    propOne: 'somevalue'
}

selectedIndex, tagName, nodeName, nodeType, ...

来自docs

  

... .prop()   方法提供了一种显式检索属性值的方法   .attr()检索属性。

使用prop()的关键词是:

属性没有相应的(HTML)属性,只是属性。


文档中的示例:

elem.checked 
// true (Boolean) Will change with checkbox state

$(elem).prop( 'checked')    
// true (Boolean) Will change with checkbox state

elem.getAttribute('checked') 
// "checked" (String) Initial state of the checkbox; 
// does not change

$(elem).attr('checked') (1.6) 
// "checked" (String) Initial state of the checkbox; 
// does not change

$(elem).attr('checked') (1.6.1+) 
// "checked" (String) Will change with checkbox state

$(elem).attr('checked') (pre-1.6) 
// true (Boolean) Changed with checkbox state