关闭

Jquery 1.6+ .prop()与.attr()方法比较

823人阅读 评论(0) 收藏 举报

今天在用JQuery的时候发现一个问题用.attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined.

$("#category_professional").click(function(){
    if($("#category_professional").prop("checked")==true)//如果选中专业类,下面则可用
	{
	 $("#source4,#target4,#source5,#target5,#source6,#target6").removeAttr("readonly");
	 $("#source4,#target4,#source5,#target5,#source6,#target6").attr("suggesturl","GetTranslatorlist.ashx");
	   $("#source4,#target4").attr("class","required textInput valid");//如果选择了则第一个为必填
	}else
	{
	
     $("#source4,#target4,#source5,#target5,#source6,#target6").attr("readonly","readonly");
	  $("#source4,#target4,#source5,#target5,#source6,#target6").attr("suggesturl","");
	  
	}

})



解决这个文章我参考了这个帖子:

http://bugs.jquery.com/ticket/9812

为什么jquery 1.6+增加了.prop()方法,因为在有些浏览器中比如说只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked"。所以,从1.6开始,jq提供新的方法“prop”来获取这些属性。
 以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。
那么,什么时候使用attr,什么时候使用prop??
1.添加属性名称该属性就会生效应该使用prop.
2.是有true,false两个属性使用prop.
3.其他则使用attr
项目中jquery升级的时候大家要注意这点!
以下是官方建议attr(),prop()的使用:
 
Attribute/Property .attr() .prop()
accesskey  
align  
async
autofocus
checked
class  
contenteditable  
draggable  
href  
id  
label  
location ( i.e. window.location )
multiple
readOnly
rel  
selected
src  
tabindex  
title  
type  
width ( if needed over .width() )

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:417678次
    • 积分:5809
    • 等级:
    • 排名:第4387名
    • 原创:156篇
    • 转载:92篇
    • 译文:0篇
    • 评论:48条
    最新评论
    博客资料(ASP.NET MVC3 马伦)
    http://www.cnblogs.com/fly_dragon/ http://www.cnblogs.com/zhangziqiu/archive/2009/02/27/aspnet-mvc-1.html http://blog.csdn.net/tcjiaan?viewmode=contents#
    WP7开发
    http://blog.csdn.net/alamiye010/article/list/3?viewmode=contents