javascript DOM 操作 attribute 和 property 的区别

时间:2022-12-17 18:49:33

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&comma;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. WaitForMultipleObjects返回失败原因之一

    上网搜了下 关于 WaitForMultipleObjects等待多个线程退出的状态失败的情况,也有人遇到类似的情况. 一次项目中我也遇到这么个情况.项目中创建线程都是用的  _beginthread ...

  2. 卸载PythonToolKit的方法

    先借用官网的内容介绍一下: PythonToolkit (PTK) is an interactive environment for python. It was originally design ...

  3. 如何生成excel文件作为图像识别结果

    如何生成excel文件作为图像识别结果 在进行大规模图像处理的时候,如果能够以表格的形式生成结果文件,将非常的直观.这个时候,选择excel作为结果输出文件,将是合适的. 查询相关资料,有很多关于ex ...

  4. 使用myeclipse建立maven项目&lpar;重要&rpar;

    maven是管理项目的,myeclipse是编写代码的.第一次写项目都要配置好多东西,很麻烦,now 来看看怎样新建一个maven项目. 工具/原料   myeclipse maven 方法/步骤   ...

  5. Asp&period;net项目因Session阻塞导致页面打开速度变慢

    发现罪魁祸首是Session阻塞造成的.默认情况下session状态是“可写状态”(EnableSessionState=”true”),即当用户打开任何一个页面时,该页面的Session就会持有一个 ...

  6. C&plus;&plus;&commat;语句块

    #include <iostream> using namespace std; int main() { { int x=1; cout << x << endl ...

  7. MAC 重置MySQL root 密码

    重置MySQL root 密码:当忘记密码,或者想要强行重置 MySQL 密码的时候,可以像下面这样: 1.停止 MySQL 服务 sudo /usr/local/mysql/support-file ...

  8. vc6&period;0 通过ADO&lpar;udl&rpar;连接sql 2008

    转载声明:本文转自http://blog.sina.com.cn/s/blog_7328b9dd0100pkbw.html茗之的博客   首先声明:本文是针对vc与sql菜鸟的,高人请让路. 本文讲解 ...

  9. ZooKeeper&lpar;3&period;4&period;5&rpar; - 使用 Curator&lpar;2&period;7&period;0&rpar; 监听事件

    ZooKeeper原生的API支持通过注册Watcher来进行事件监听,但是Watcher通知是一次性的,因此开发过程中需要反复注册Watcher,比较繁琐.Curator引入了Cache来监听Zoo ...

  10. Android开发:怎样定制界面风格

    统一的用户界面是可以使得应用程序更友好.要做到用户界面的统一,我们就必须用到风格(style)和主题(theme).OPhone系统提供了很多系统默认的风格和主题,但是很多情况下,这些不能满足我们的需 ...