$(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状态值,类似checkedselecteddisabled等表单元素的状态,最好使用.prop()方法,而自定义的属性最好使用attr() 方法,若使用prop() 同样可能会出现undefined的情况。官方给出了下面的一个表:(什么时候用哪种方法)

最新文章

  1. GTest Google的一种白盒单元测试框架 开源项目
  2. Android学习第一天-adb常用命令
  3. MAC OS X的ACL扩展权限设置
  4. RMQ训练题 codevs 1291 火车线路 已经搞定
  5. 复杂的databinding接受Ilist作为数据源
  6. 收缩Mysql的ibdata1文件大小方法
  7. VC远控(三)磁盘显示
  8. leetcode第31题--Longest Valid Parentheses
  9. 对Java的初步的认识:
  10. 【题解】Luogu P4069 [SDOI2016]游戏
  11. 转:Eclipse中web项目部署至Tomcat步骤
  12. 【BZOJ1565】【NOI2009】植物大战僵尸 网络流 最大权闭合子图
  13. python序列类型字符串的方法L.index()与L.find()区别
  14. Android 如何保持屏幕常亮
  15. bootstrap和ajax相结合
  16. Linux内核分析(第六周)
  17. Mysql中unique与primary约束的区别分析(转)
  18. weexpack 使用
  19. StackView实现叠加在一起的图片循环移动像循环队列一样
  20. Netty核心概念(5)之Channel

热门文章

  1. 【nginx】关于Nginx的一些优化(突破十万并发)
  2. RethinkDB创始人教你怎样找到创业点子
  3. C#中方法中 ref 和 out的使用
  4. linux crontab 定时任务解析
  5. Linq的优缺点
  6. error LNK2022: metadata operation failed (801311D6) : Differing number of methods in duplicated types
  7. 创建spring管理的自定义注解
  8. 【shell】判断一个变量是否为空
  9. Gemini.Workflow 双子工作流入门教程三:定义流程:流程节点、迁移条件参数配置
  10. [2018-08-25]模板引擎Razor Engine 用法示例