dal*_*lin 5 javascript jquery attributes prop attr
据我所知,.prop()函数可以执行.attr()函数可以执行的所有操作,但通常更安全,更简单.
例如:
$('myCheckbox').prop('defaultChecked')(而不是$('myCheckbox').attr('checked')).这实际上似乎比使用更安全.attr('checked'),因为如果动态更改复选框,属性可能会丢失它的值,同时.prop('defaultValue')保持值(例如http://jsfiddle.net/p1Lrgwnb/1/).attr()有值,如坚持使用id,并name在计算器上的例子,.prop()正常工作与那些为好..attr()除了传统的惯例和习惯之外,我不知道任何理由似乎更适合这些价值观.是否有一个用例我需要使用.attr()或该.prop()功能不会给我所需的信息?
编辑:这个问题与.prop()和之间的区别无关.attr().我已经深入研究了StackOverflow上的这些问题,包括下面链接的问题(stackoverflow.com/questions/5874652/prop-vs-attr).从我的问题来看,很明显我完全理解两者之间的差异,可能比大多数人更好.我的问题是在任何情况下我必须使用.attr(),这是一个完全不同的问题,来自.prop()vs .attr().
<input id="check1" checked="checked" type="checkbox" />\n.attr(\'checked\') //returns checked\n.prop(\'checked\') //returns true\n.is(\':checked\') //returns true\nRun Code Online (Sandbox Code Playgroud)\n\nprop 方法返回已检查、选定、禁用、只读等的布尔值,而 attr 返回定义的字符串。因此,您可以在 if 条件中直接使用 .prop(\xe2\x80\x98checked\xe2\x80\x99) 。
\n\n.attr() 在内部调用 .prop(),因此 .attr() 方法会比直接通过 .prop() 访问它们稍慢。
\n\n对于 jQuery 1.6+,主要使用 prop,因为它比 attr 更简单且更广泛。在大多数老项目中,attr用于获取元素当前的状态信息。但现在 prop 已经承担了这项工作,attr 将被 prop 取代。
\n\n\n