我们都知道,一般在jquery中设置属性时要用到attr()方法,现在我们有一个效果,点击按钮切换复选框的选中状态,下面贴出html代码:

 <input type="checkbox" id="check"><label>复选框</label><input type="button" value="切换" id="btn">

js代码:

<script>$(function(){var flag=false;$("#btn").click(function(){if(flag==false){$("#check").attr("checked",true);flag=true;}else{$("#check").removeAttr("checked");flag=false;}});});
</script>

我们发现当点击按钮时,第一次点击时复选框会选中,第二次时点击复选框会取消选中,但以后再点击时复选框将不会有任何效果。更奇怪的是,打开调试工具,点击按钮时html代码中会有相应的checked="checked"代码段,但页面却没效果。

当我们用prop()方法替换attr()方法时,一切将变得正常:

  <script>$(function(){var flag=false;$("#btn").click(function(){if(flag==false){$("#check").prop("checked",true);flag=true;}else{$("#check").removeAttr("checked");flag=false;}});});</script>

这是为什么呢,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();

以下是官方建议attr(),prop()的使用:

原文地址:http://www.jb51.net/article/41170.htm

转载于:https://www.cnblogs.com/smartXiang/p/5686800.html

浅谈jquery中prop()和attr()相关推荐

  1. php中jquery ajax请求参数,浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html asy.js function testAsync{ var temp; $.ajax( ...

  2. 浅谈JQuery中$('.classname').get(0); $('.classname').eq(0); $('.classname')[0]三者的区别

    举例浅谈JQuery中$('.classname').get(0); $('.classname').eq(0); $('.classname')[0]三者的区别 demo Dom结构: <di ...

  3. 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式

    前言 因为项目中经常会有利用jquery操作dom元素的增删操作,所以会涉及到dom元素的绑定事件方式,简单的归纳一下bind,live,delegate,on的区别,以便以后查阅,也希望该文章日后能 ...

  4. java中jquery怎么学,浅谈jQuery中的事件--Java学习网

    核心提示:JQuery事件初见1.JQuery中的事件绑定其实呢,JQuery中标准的事件绑定是这样写下:(如下)代码如下:$('#btn').bind('click',function(){}):但 ...

  5. 浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异

    本文结合W3School的文档,分析了jQuery中 wrap() wrapAll() 与 wrapInner()的差异,并给出了图文对比教程,非常的简单实用,有需要的朋友可以参考下 今晚看书的时候发 ...

  6. jquery中prop()和attr()的使用

    jquery1.6+出现的prop()方法. • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法.  • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法. • ...

  7. 浅谈Jquery中的bind()、live()、delegate()、on()绑定事件方式

    一.on(),live(),bind() on() 为指定的元素,添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数.使用 on() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建 ...

  8. jquery中prop()方法和attr()方法

    接着上一篇笔记的疑惑,找了下prop()方法和attr()方法的区别.原来query1.6中新加了一个方法prop(),一直没用过它,官方解释只有一句话:获取在匹配的元素集中的第一个元素的属性值. 大 ...

  9. 浅谈jQuery属性获取

    浅谈jQuery的属性获取 基本标签设置与基本css,附图下所示 上述代码如下图: 一.js的一些属性获取 1.var div = document.getElementById("firs ...

最新文章

  1. SpringBoot快速开发利器:Spring Boot CLI
  2. 帆软报表(finereport)使用Event 事件对象 (target)修改提示框样式
  3. qt 程序异常结束。_软件特攻队|VLC-Qt,功能齐全的跨平台多媒体开发利器
  4. ios内联函数 inline
  5. 迄今为止2020年AI的奋斗与成功
  6. 服务器修改ip socket,socket不能选择本地IP连接的解决方法
  7. 博弈论分析题_最新博弈论复习题及答案分析
  8. 汇编语言程序设计思维导图
  9. 优动漫PAINT实现制图化繁为简的一波骚操作
  10. 人工智能、机器学习、神经网络和深度学习的发展历程(下)
  11. 转载:《星际争霸》韩国三大Zerg点评
  12. 地铁发展黄金期 安防应用受考验
  13. MSDN 、 RTM 、 OEM 、 VOL 四大版本之区别
  14. 唯一登录、联合登录、单点登录——唯一登录
  15. 中级会计 科学计算机,听说中级会计机考系统计算器你还不会使用?还不快点关注...
  16. O2O商城系统,适合本地电商发展的商城系统!
  17. Exchange控制台错误:WinRM客户端已将请求发送到HTTP服务器
  18. 【调剂】北京科技大学钢铁共性技术协同创新中心2021年硕士拟接收调剂公告
  19. C# 在子窗口显示已经隐藏的主窗口,简单实用
  20. vue+element实现滚动公告栏效果

热门文章

  1. 化作春泥更护花的上一句是什么?化作春泥更护花作者是谁
  2. 2021年已经过去了4天,创业者、负债累累而希望通过再创业实现东山再起者,你们准备的怎么样了?
  3. 试着当个“刺头”,不要被客户“牵着”鼻子走
  4. 玩微博也好,头条、朋友圈也罢
  5. 我发现每一个生意做得不错的人都很会说话
  6. 当一个人把一个行业说得特别容易赚钱的时候
  7. 为什‮多很了学么‬营销‮识知‬依然赚不到钱?
  8. 我弟弟用管理员身份把我和爸妈的WIFI设置了,现在就他能用网,气不过,有办法让我出口气吗?
  9. 宽带安装人员将光纤网线卷了很大一圈,请问,这样做会影响网速吗?
  10. mac下打开多个相同应用程序