javascript DOM 操作 attribute 和 property 的区别

在做 URLRedirector 扩展时,注意到在使用 jquery 操作 checkbox 是否勾选时,用 attr() 方法时有些出问题,原来的代码如下:

$("thead :checkbox").attr("checked", false);
...
$("tbody tr").each(function() {
$(this).find(":checkbox").first().attr("checked", false);
});

然后出现很奇怪的现象,在 thead 里面的 checkbox 没有办法取消勾选,而 tbody 里面的工作正常。

查了一下,说是 jquery 高版本对于 attr 和 prop 的处理更加接近于 javascript 原来的语义。在 javascript 中,property 具有更加广泛的语义,它是对象里面的属性,而 attribute 中是在 DOM 元素对象中 attributes 这个属性里面的一个,通过 setAttribute 、getAttribute 等方法进行操作。即:

{
id: ...
lang: ...
attributes: {
...
}
}

而操作 property 要通过 prop() 方法进行操作。因此,改为 :

$("thead :checkbox").prop("checked", false);

则工作正常。

attr() 方法相当于 elem.setAttribute(name, value + "")elem.getAttribute(name),而 prop() 方法相当于 document.getElementById(el)[name] = valuedocument.getElementById(el)[name]

可以参考 http://www.cnblogs.com/zhwl/p/3520162.html,看两者的具体区别。一般情况下,对于具有 boolean 类型的属性,如 checked, selected 或者 disabled 等等应该使用prop(),其他的使用 attr()

javascript DOM 操作 attribute 和 property 的区别的更多相关文章

  1. javascript DOM 操作基础知识小结

    经常用到javascript对dom,喜欢这方便的朋友也很多,要想更好的对dom进行操作,这些基础一定要知道的.   DOM添加元素,使用节点属性  <!DOCTYPE html PUBLIC ...

  2. javascript DOM 操作

    在javascript中,经常会需要操作DOM操作,在此记录一下学习到DOM操作的知识. 一.JavaScript DOM 操作 1.1.DOM概念 DOM :Document Object Mode ...

  3. javascript DOM操作之 querySelector,querySelectorAll

    javascript DOM操作之 querySelector,querySelectorAll

  4. 必备技能:分清楚DOM的attribute和property

    分清楚DOM的attribute和property,用JQ的时候分清楚attr,和prop方法,网上有很多大神的总结,我就不列举了.

  5. javascript中attribute和property的区别详解

    DOM元素的attribute和property很容易混倄在一起,分不清楚,两者是不同的东西,但是两者又联系紧密.很多新手朋友,也包括以前的我,经常会搞不清楚. attribute翻译成中文术语为“特 ...

  6. javascript DOM操作HTML文档

    文档对象模型(DOM)是W3C为解决浏览器混战时代不同浏览器环境之间的差别而制定的模型标准.W3C将文档对象模型定义为:是一个能让程序和脚本动态 访问和更新文档内容.结构和样式的语言平台.提供了标准的 ...

  7. attribute和property的区别

    DOM元素的attribute和property很容易混倄在一起,分不清楚,两者是不同的东西,但是两者又联系紧密.很多新手朋友,也包括以前的我,经常会搞不清楚. attribute翻译成中文术语为“特 ...

  8. Javascript中的attribute和property分析

    attribute和property这两个单词,都有属性的意思,attribute有属性.特质的意思,property则有性质,性能的意思. 首先需要明确的是,在规范中,读取和设置attribute的 ...

  9. 仅100行的JavaScript DOM操作类库

    如果你构建过Web引用程序,你可能处理过很多DOM操作.访问和操作DOM元素几乎是每一个Web应用程序的通用需求.我们我们经常从不同的控件收集信息,我们需要设置value值,修改div或span标签的 ...

随机推荐

  1. Linux常用命令学习5---(Shell编程)

    1.Shell概述    Shell是一个命令行解释器.它为用户提供了一个向Linux内核发送请求一以便运行程序的界面系统级程序,用户可以用 Shell来启动.挂起.停止甚至是编写一些程序    Sh ...

  2. python莫名其妙的yield, yield from, yield.send

    练了几行代码, 慢慢找感觉. TASK,多线程,异步,很多地方都用到的呢. #!/usr/bin/env python # -*- coding: utf-8 -*- import time from ...

  3. hadoop入门(1)——hadoop概述

    一.hadoop生态系统特点 开源.社区活跃.涉及分布式存储和计算的整个生态系统.已得到企业界验证. hadoop1.0与2.0版本的比较: 1.0包含HDFS+MapReduce. 2.0包括HDF ...

  4. Visual Studio 插件的开发(转)

    起因 在做项目的时候,经常需要根据表结构create一些实体类,写多了,实在是觉得无趣,于是就琢磨着做个代码生成工具.当然现在有很多现成的,拿来用就好,可是总想自己弄个出来玩玩,一来是当初用DataS ...

  5. SeekBar进度条简单案例

    SeekBar是进度条.我们使用进度条时,可以使用系统默认的进度条:也可以自定义进度条的图片和滑块图片等 向右拉进度条让图片显示出来 向右拉五角星加载有色进度条 baseSeekBar package ...

  6. table sorting–angularjs

    1: <script type="text/javascript" ng:autobind 2: src="http://code.angularjs.org/0. ...

  7. 【二分】POJ 2109

    谁骗我这是贪心TT 大概就是求k的n次方等于p时的k(k到10^9),由于,p的数据到了10^101,n到200,所以直接算估计T ?? 反正看完想到二分,其实数据要是再大点估计我这个二分不行. 网上 ...

  8. 【异常】ORA-01536: space quota exceeded for tablespace

    ### The error may exist in /src/main/resources/com/star/css/dao/sql/workflow.xml ### The error may i ...

  9. 畅通工程续——E

    E. 畅通工程续 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多.这让 ...

  10. FineUI 基于 ExtJS 的专业 ASP.NET 控件库

    FineUI 基于 ExtJS 的专业 ASP.NET 控件库 http://www.fineui.com/