.prop( propertyName, value )描述: 为匹配的元素设置一个或多个属性(properties)。
.prop()方法设置属性值非常方便,尤其是对于需要使用一个函数设置多个属性值或是一次性设置多个属性值的情况。当设置selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 或 defaultSelected必须使用这个方法。从jQuery1.6开始,这些属性可以不再使用.attr()方法来设置。他们没有相应的属性(attributes),只有属性(property)。
Properties 属性一般影响 DOM 元素的动态状态并不会改变序列化的 HTML attribute 属性。例如,input 元素的 value 属性,input 和 按钮 元素的 disabled 属性, 以及 checkbox 的 checked 属性。应该使用 .prop() 方法设置 disabled 和 checked 属性,而不是使用 .attr() 方法。 .val() 方法应该用于存取 value 值。
$("input").prop("disabled", false);
$("input").prop("checked", true);
$("input").val("someValue");
还要注意的是.removeProp()方法不应该被用来设置这些属性为false。一旦原生的属性被移除,就无法再被添加。见.removeProp()获取更多信息。
Computed property values(计算的属性值)
通过使用一个函数来设置属性,你可以根据其他的元素的属性计算它的值。例如,根据单独的值切换所有复选框:
$("input[type='checkbox']").prop("checked", function( i, val ) {
return !val;
});
注意: 如果设置的函数没有返回(即 function(index, prop){})),或者返回undefined ,当前值不会被改变。 这当某些条件得到满足选择性元素设定属性值(比如 复选框,单选等),是非常有用的。
|