zoukankan      html  css  js  c++  java
  • jquery 1.6发布后,增加prop()方法部分取代attr()方法

     

    以前的jq中,全部使用attr来访问对象的属性,比如取一个图片的alt属性,就可以这样做$('#img').attr('alt');
     
    但是在某些时候,比如访问checkbox的disabled属性的时候,会有些问题。用JQuery的时候发现一个问题用.attr("checked")获取checkbox的checked属性时选中的时候可以取到值,值为"checked"但没选中获取值就是undefined.
    有些浏览器中比如说只要写disabled,checked就可以了,而有的要写成disabled = "disabled",checked="checked"。所以,从1.6开始,jq提供新的方法“prop”来获取这些属性。
     以前我们使用attr获取checked属性时返回"checked"和"",现在使用prop方法获取属性则统一返回true和false。
     
    使用prop的时候,返回值是标准属性,true/false,比如$('#checkbox').prop('disabled'),不会返回“disabled”或者“”,只会是true/false。当然赋值的时候也是如此。如此,我们便统一了所有操作,无论是从语法上还是语义上。
     
    那么,哪些属性应该用attr访问,哪些应该用prop访问呢?一个原则是,只添加属性名不添加属性值就会生效;第二个原则是,只存在true/false的属性,按照官方文档,如下:
     
    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() )  
    什么时候使用attr,什么时候使用prop??
    1.添加属性名称该属性就会生效应该使用prop.
    2.是有true,false两个属性使用prop.
    3.其他则使用attr
     
     
  • 相关阅读:
    Sqlserver 2005 配置 数据库镜像:镜像模式
    Sqlserver 2005 配置 数据库镜像:数据库镜像期间可能出现的故障:镜像超时机制
    Sqlserver 2005 配置 数据库镜像:镜像状态
    Sqlserver 2005 配置 数据库镜像:对数据库镜像设置进行故障排除:重点!!!!!!!!!!!!!
    HTTP请求和响应过程
    HTTP模型头域
    HTTP协议简介
    KeyDown,KeyPress 和KeyUp 之我谈(更新版本)
    jquery ajax loading效果
    HTTP模型头域
  • 原文地址:https://www.cnblogs.com/jellychow/p/prop.html
Copyright © 2011-2022 走看看