据我所知, .prop() 函数可以做 .attr() 函数可以做的所有事情,但通常以一种更安全、更简单的方式。
例如:
- 如果我想获得 HTML 中复选框的默认状态,我可以这样做
$('myCheckbox').prop('defaultChecked')
(而不是$('myCheckbox').attr('checked')
)。这实际上似乎比使用更安全.attr('checked')
,因为如果复选框动态更改,属性可能会丢失它的值,同时.prop('defaultValue')
保持值(例如http://jsfiddle.net/p1Lrgwnb/1/) - 尽管我经常看到与StackOverflow 示例中的和
.attr()
等值一致使用,但它们也可以正常使用。我不知道除了传统的约定和习惯之外,似乎有任何理由更喜欢这些价值观。id
name
.prop()
.attr()
有没有我需要使用的用例,.attr()
或者该.prop()
功能不会给我所需的信息?
编辑:.prop()
这个问题与和之间的区别无关.attr()
。我已经深入研究了 StackOverflow 上的这些问题,包括下面链接的问题 ( stackoverflow.com/questions/5874652/prop-vs-attr )。从我的问题来看,很明显我完全理解两者之间的区别,可能比大多数人更好。我的问题是在任何情况下我必须使用 .attr(),这是与 .prop() 与 .attr() 完全不同的问题。