jQuery技术

jQuery.prop() 使用详解

字号+ 作者:H5之家 来源:H5之家 2015-11-09 19:09 我要评论( )

jQuery.prop() 使用详解_jquery_HTML5中文学习网,是中国最大的HTML5中文门户,为广大HTML5爱好者提供各种HTML5资料,包括HTML5网站、HTML5资讯、HTML5应用、HTM

prop()函数用于设置或返回当前jQuery对象所匹配的元素的属性值。ddCHTML5中文学习网 - HTML5先行者学习网

该函数属于jQuery对象(实例)。如果需要删除DOM元素的属性,请使用removeProp()函数。ddCHTML5中文学习网 - HTML5先行者学习网

语法ddCHTML5中文学习网 - HTML5先行者学习网

jQuery 1.6 新增该函数。prop()函数有以下两种用法:ddCHTML5中文学习网 - HTML5先行者学习网

用法一:ddCHTML5中文学习网 - HTML5先行者学习网

jQueryObject.prop( propertyName [, value ] )ddCHTML5中文学习网 - HTML5先行者学习网
ddCHTML5中文学习网 - HTML5先行者学习网

设置或返回指定属性propertyName的值。如果指定了value参数,则表示设置属性propertyName的值为value;如果没有指定value参数,则表示返回属性propertyName的值。ddCHTML5中文学习网 - HTML5先行者学习网

参数value还可以是函数,prop()将根据匹配的所有元素遍历执行该函数,函数中的this指针将指向对应的DOM元素。prop()还会为函数传入两个参数:第一个参数就是该元素在匹配元素中的索引,第二个参数就是该元素propertyName属性当前的值。函数的返回值就是为该元素的propertyName属性设置的值。ddCHTML5中文学习网 - HTML5先行者学习网

用法二:ddCHTML5中文学习网 - HTML5先行者学习网

jQueryObject.prop( object )ddCHTML5中文学习网 - HTML5先行者学习网
ddCHTML5中文学习网 - HTML5先行者学习网

以对象形式同时设置任意多个属性的值。对象object的每个属性对应propertyName,属性的值对应value。ddCHTML5中文学习网 - HTML5先行者学习网

注意:prop()函数的所有"设置属性"操作针对的是当前jQuery对象所匹配的每一个元素;所有"读取属性"的操作只针对第一个匹配的元素。ddCHTML5中文学习网 - HTML5先行者学习网
参数ddCHTML5中文学习网 - HTML5先行者学习网

请根据前面语法部分所定义的参数名称查找对应的参数。ddCHTML5中文学习网 - HTML5先行者学习网

参数 描述ddCHTML5中文学习网 - HTML5先行者学习网
propertyName String类型指定的属性名称。ddCHTML5中文学习网 - HTML5先行者学习网
value 可选/Object/Function类型指定的属性值,或返回属性值的函数。ddCHTML5中文学习网 - HTML5先行者学习网
object Object类型指定的对象,用于封装多个键值对,同时设置多项属性。ddCHTML5中文学习网 - HTML5先行者学习网
参数value可以是包括对象和数组在内的任意类型。ddCHTML5中文学习网 - HTML5先行者学习网

返回值ddCHTML5中文学习网 - HTML5先行者学习网

prop()函数的返回值是任意类型,返回值的类型取决于当前prop()函数执行的是"设置属性"操作还是"读取属性"操作。ddCHTML5中文学习网 - HTML5先行者学习网

如果prop()函数执行的是"设置属性"操作,则返回当前jQuery对象本身;如果是"读取属性"操作,则返回读取到的属性值。ddCHTML5中文学习网 - HTML5先行者学习网

如果当前jQuery对象匹配多个元素,返回属性值时,prop()函数只以其中第一个匹配的元素为准。如果该元素没有指定的属性,则返回undefined。ddCHTML5中文学习网 - HTML5先行者学习网

prop()和attr()的主要区别:prop()函数针对的是DOM元素(JS Element对象)的属性,attr()函数针对的是DOM元素所对应的文档节点的属性。详情请查看jQuery函数attr()和prop()的区别。ddCHTML5中文学习网 - HTML5先行者学习网
ddCHTML5中文学习网 - HTML5先行者学习网

注意事项ddCHTML5中文学习网 - HTML5先行者学习网

1、如果通过prop()函数更改<input>和<button>元素的type属性,在多数浏览器上将会抛出一个错误,因为该属性一般不允许在后期更改。ddCHTML5中文学习网 - HTML5先行者学习网

2、如果使用prop()函数操作表单元素的checked、selected、disabled等属性,如果该元素被选中(或禁用),则返回true,否则(意即HTML中没有该属性)返回false。ddCHTML5中文学习网 - HTML5先行者学习网

3、prop()函数还可以设置或返回DOM元素的Element对象上的某些属性,例如:tagName、selectedIndex、nodeName、nodeType、ownerDocument、defaultChecked和defaultSelected等属性。ddCHTML5中文学习网 - HTML5先行者学习网

4、在IE9及更早版本中,如果使用prop()函数设置的属性值不是一个简单的原始值(String、Number、Boolean),并且在对应的DOM元素被销毁之前,该属性没有被移除,则可能会导致内存泄漏问题。如果你只是为了存储数据,建议你使用data()函数,以避免内存泄漏问题。ddCHTML5中文学习网 - HTML5先行者学习网

示例&说明ddCHTML5中文学习网 - HTML5先行者学习网

以下面这段HTML代码为例:ddCHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:

<div>ddCHTML5中文学习网 - HTML5先行者学习网
    <p data-key="UUID" data_value="1235456465">CodePlayer</p>ddCHTML5中文学习网 - HTML5先行者学习网
    <input type="checkbox" value="1">ddCHTML5中文学习网 - HTML5先行者学习网
    <input type="checkbox" checked="checked" value="2">ddCHTML5中文学习网 - HTML5先行者学习网
</div>

ddCHTML5中文学习网 - HTML5先行者学习网
我们编写如下jQuery代码:ddCHTML5中文学习网 - HTML5先行者学习网

var $n2 = $("#n2");// prop()操作针对的是元素(Element对象)的属性,而不是元素节点(HTML文档)的属性document.writeln( $n2.prop("data-key") ); // undefineddocument.writeln( $n2.prop("data_value") ); // undefineddocument.writeln( $n2.prop("id") ); // n2document.writeln( $n2.prop("tagName") ); // Pdocument.writeln( $n2.prop("className") ); // demo testdocument.writeln( $n2.prop("innerHTML") ); // CodePlayerdocument.writeln( typeof $n2.prop("getAttribute") ); // function// prop()设置的属性也是针对元素(Element对象),因此也可以通过元素本身直接访问$n2.prop("prop_a", "CodePlayer");document.writeln( $n2[0].prop_a ); // CodePlayervar n2 = document.getElementById("n2");document.writeln( n2.prop_a ); // CodePlayer// 以对象形式同时设置多个属性,属性值可以是对象、数组等任意类型$n2.prop( { prop_b: "baike", prop_c: 18, site: { name: "CodePlayer", url: "http://www.jb51.net/" }} );document.writeln( $n2[0].prop_c ); // 18document.writeln( $n2[0].site.url ); // 反选所有的复选框(没选中的改为选中,选中的改为取消选中)$("input:checkbox").prop("checked", function(index, oldValue){ return !oldValue;});

以上所述就是本文的全部内容了,希望大家能够喜欢。ddCHTML5中文学习网 - HTML5先行者学习网

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评