jquery中attr和prop的区别 jQuery 中 attr 和 prop 方法的区别
jquery中attr和prop的区别
jQuery的 .attr() 方法得到了一个元素的属性值主要有两个好处:
方便:它可以直接被jQuery对象访问并且链式调用其他jQuery方法。
浏览器兼容:一些属性在不同浏览器中得到不同的值。 甚至在同一个浏览器的不同版本中。 .attr() 方法减少了兼容性问题。
注意: 除少数属性意外,属性值都是字符串,如value和tabindex。
在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。另外,.attr()不应该用在普通的对象,数组,窗口(window)或文件(document)上。若要检索和更改DOM属性,比如元素的checked, selected, 或disabled状态,请使用.prop()方法。
Attributes vs. Properties
attributes和properties之间的差异在特定情况下是很重要。jQuery 1.6之前 ,.attr()方法在取某些 attribute 的值时,会返回 property 的值,这就导致了结果的不一致。从 jQuery 1.6 开始, .prop()方法 方法返回 property 的值,而.attr() 方法返回 attributes 的值。
例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected应使用.prop()方法进行取值或赋值。 在jQuery1.6之前,这些属性使用.attr()方法取得,但是这并不是元素的attr属性。他们没有相应的属性(attributes),只有特性(property)。
jQuery 中 attr 和 prop 方法的区别
jquery1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值。
大家都知道有的浏览器只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked",比如用attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined。
jq提供新的方法“prop”来获取这些属性,就是来解决这个问题的,以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。
那么,什么时候使用attr(),什么时候使用prop()?
1.添加属性名称该属性就会生效应该使用prop()
2.是有true,false两个属性使用prop()
3.其他则使用attr()
jQuery中.attr和.data的区别分析
attr方法可以用来获取JQuery对象的属性值,例如获取对象jq的name属性值:var v= jq.attr("name")
attr方法也可以用来设置属性值,例如:jq.attr("name", "test")作用是把对象jq对应的html元素的name属性值设置为test。
data方法用来获取JQuery对象上缓存的数据或者在JQuery对象上缓存数据,缓存的数据都是以key-value(键值对)形式保存。例如:
var d = jq.data("mydata")可以在JQuery对象jq上获取key为mydata的缓存数据。
jq.data("mk", "mv")可以在JQuery对象jq上缓存数据,键是mk,值是字符串“mv”。
data可以缓存任何JS对象,例如字符串、数组、json等等。
需要注意的是,key(键)中的字母只能用小写。
jquery中 attr的作用是什么?
attr()属性方法
attr("width")返回宽度。
attr("width","30px")设置宽度为30px
下面有个例子:
<table boder="1">
<tr><td></td>
</tr></table>
<input type="button" id="ClearBoder" value="去除表格边框">
<javascript type="text/javascript">
$(document).ready(funciton(){
$("#ClearBoder").attr("boder","0")
})
jquery unbind和attr 求解释
alert() 本来就属于 window对象的方法  意思是弹出一个警告窗口。
attr(id,c)  //  attr取得当前 $("#b") 这个元素 的 属性   这个例子是拿到他的 ID  然后将他的ID覆盖 为C
bind()的反向操作,从每一个匹配的元素中删除绑定的事件。
参数
type,[fn](可选)                                       String,FunctionV1.0
type:删除元素的一个或多个事件,由空格分隔多个事件值。
fn:要从每个匹配元素的事件中反绑定的事件处理函数
type,false(可选)String,boolV1.4.3
type:删除元素的一个或多个事件,由空格分隔多个事件值false:设置为false会使默认的动作失效。 eventObj(可选)StringV1.0
事件对象。这个 eventObj 参数来自事件绑定函数
示例描述:
把所有段落的所有事件取消绑定
jQuery 代码:
$("p").unbind()   
描述:将段落的click事件取消绑定jQuery
代码:$("p").unbind( "click" )
描述:删除特定函数的绑定,将函数作为第二个参数传入jQuery 
代码:var foo = function () {
  // 处理某个事件的代码
}
$("p").bind("click", foo) // ... 当点击段落的时候会触发 foo 
$("p").unbind("click", foo) // ... 再也不会被触发 foo
可以直接查API 文档看哦