jquery中attr() & prop() 的区别与其实现方法
$(function(){
$('#check').attr('checked'); // undefind ???一头雾水
})
在jquery中 attr 本来就是用来设置或者获取属性的,可是上面的方法却返回给 undefined ?
然后我尝试用
$('#check').prop('checked');
发现可以正常运行!!
在jquery中prop是相对来说版本比较新的一个方法,乍一看它的功能好像和attr没有什么很大的差别,的确,它们都可设置或者来获取属性,比如
$('#div').attr('title','hello');
$('#div').prop('title','hello');
$('#div').attr('class');
$('#div').prop('class');
都可以正常的运行,通过查看他们在jquery中的源码我有所发现:
在原生js中我们可以用 setAttribute() 和 getAttribute() 进行操作 ,也可以用 .|[] 进行操作 (exp: document.getElementById('div').title|| document.getElementById('div')[title] )。
在jquery当中 attr() 方法最主要的就是应用了原生中的 setAttribute() 和 getAttribute() 而 prop() 方法用的则是 . | [] 这就是他们之间为什么会有不同之处的根本原因(当然,其中还有一些hook的因素影响着,感兴趣的同学可以去看一看源码)
那么 attr() 和 prop() 在平常的使用中有什么区别呢,在jQuery 1.6中,.attr()
方法查询那些没有设置的属性,则会返回一个undefined。如果你要去恢复或者改变DOM状态值,类似checked
,selected
,disabled
等表单元素的状态,最好使用.prop()
方法,而自定义的属性最好使用attr() 方法,若使用prop() 同样可能会出现undefined的情况。官方给出了下面的一个表:(什么时候用哪种方法)
jquery中attr() & prop() 的区别与其实现方法的更多相关文章
- 关于jQuery中attr(),prop()的使用
注意:什么时候使用attr(),什么时候使用prop()?1.添加属性名称该属性就会生效应该使用prop();2.是有true,false两个属性使用prop();3.其他则使用attr(); 以下是 ...
- jquery中attr和prop的区别、 什么时候用 attr 什么时候用 prop (转自 芈老头 )
jquery中attr和prop的区别. 什么时候用 attr 什么时候用 prop 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这 ...
- jQuery中.attr()和.prop()的区别
之前学习jQuery的时候,学习到了两种取得标签的属性值的方法:一种是elemJobj.attr(),另一种是elemJobj.prop().而在学习JS的时候,只有一种方法elemObj.getAt ...
- jquery中attr和prop的区别(转)
在网络上看到这样一篇关于jquery中attr和prop的区别文章,觉得不错,所以转载了. 在jQuery 1.6中,.attr()方法查询那些没有设置的属性,则会返回一个undefined.如果你要 ...
- jquery中attr()与prop()函数用法实例详解(附用法区别)
本文实例讲述了jQuery中attr()与prop()函数用法.分享给大家供大家参考,具体如下: 一.jQuery的attr()方法 jquery中用attr()方法来获取和设置元素属性,attr是a ...
- jquery中attr和prop的区别分析
这篇文章主要介绍了jquery中attr和prop的区别分析的相关资料,需要的朋友可以参考下 在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别 ...
- jquery中attr与prop的区别
先从一个老生常谈的问题说起,使用jquery实现全选全不选.楼主先使用的jquery版本是 jquery-1.11.1.min.js 全选<input type="checkbox&q ...
- jQuery中的prop()和attr()的区别
1.jQuery中的prop()和attr()的区别 prop()是在jQuery1.6版本之后才有的,在之前一直都是使用attr(), prop()修复了attr()的一些小bug. 2.推荐用法: ...
- jQuery中attr和prop方法的区别说明
jquery中attr和prop的基本区别可以理解为:如果是内置属性,建议用prop,如果是自定义的建议用attr. 例如 <input type=check node=123 id=ck & ...
随机推荐
- IIS 配置错误:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。 HTTP 错误 500.19
因为 IIS 7 采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改.运行命令行 %windir%\system32\inetsrv\appcmd unlock conf ...
- 简述什么是ajax、javascript、json、Jquery?
什么是Javascript? 基于对象.解释型.事件驱动.脚本语言.封装在<script>标签中使用.弱类型.与浏览器交互执行 什么 是Ajax? ajax是一种编程模式.在客户端与服务器 ...
- python使用模板手记
1.首先是$符号 在webpy中,模板html里面可以写python代码,但要用$开始.但如果网页代码本来就有$符号(javascript或者正则表达式),我们需要对其进行转意.用$$代替$ 给jqu ...
- 在ios中使用单例模式编程
本文转载至 http://blog.csdn.net/remote_roamer/article/details/7107007 1. @implementation Singleton ...
- python 基础 7.8 json--下
一. 文件和json 之间的转换 1. json.dump() #/usr/bin/python #coding=utf-8 #@Time :2017/11/13 0:12 #@Authe ...
- PHPCMS替换主页、列表页、内容页
利用phpcms制作企业站,首先要将静态的企业主页替换成后台可编辑的动态主页. 在phpcms/install_package/phpcms/templates新建一个英文文件夹 在此文件夹下在创建一 ...
- 【BZOJ2476】战场的数目 矩阵乘法
[BZOJ2476]战场的数目 Description Input 输入文件最多包含25组测试数据,每个数据仅包含一行,有一个整数p(1<=p<=109),表示战场的图形周长.p=0表示输 ...
- intellij idea 大内存优化配置 idea64.exe.vmoptions文件配置
-ea-server-Xms2G-Xmx4096M-Xss2m-XX:MaxMetaspaceSize=2G-XX:ReservedCodeCacheSize=1G-XX:MetaspaceSize= ...
- 使用EasyPusher进行手机低延时直播推流便捷开发
基于EasyPusher sdk库工程(即library module)实现一个推送客户端非常简单便捷,因为sdk端已经将各种烦人的状态维护\错误检查\权限判定\UI同步等功能都实现了,开发者仅仅只需 ...
- Neural Task Programming: Learning to Generalize Across Hierarchical Tasks
Neural Task Programming: Learning to Generalize Across Hierarchical Tasks