jquery中.prop()和.attr()的区别 什么叫布尔型属性 property vs attributes , boolean attributes...

jQuery中的.attr()和.prop()方法 - 操作元素属性的细节解析 本文详细介绍了jQuery中的.attr()和.prop()方法,这两个方法用于操作HTML元素的属性。对于HTML属性和DOM属性的处理:.attr()方法用于处理HTML属性,而.prop()方法用于处理DOM属性。综上所述,.attr()方法和.prop()方法在操作元素属性时具有相似的功能,但在一些细节上存在差异。与.attr()方法不同,.prop()方法更适合用于处理布尔类型的属性,例如。返回值类型:.attr()方法始终返回属性的字符串值,而.prop()方法根据属性的类型返回不同的值。 阅读详情

jquery 1.6之后出了个新方法 .prop() ,之后又改回去了点儿东西。那么现在 .prop() 与 .attr() 到底各自对应什么呢? 什么时候该用哪个?

一般的回答是,使用.prop()来获取property,使用.attr()来获取attributes。但这又引发了另一个问题,什么是property, 什么是attributes。

结束这种转圈圈的游戏吧。当我们在写一个html/xml的 mark up 时,比如

<input type='checkbox' value='male' name='gender' checked> male

此时attributes取到的就是解析这个html得到的属性,即:

这里写图片描述

attr(‘checked’)会得到checked 是因为这是一个boolean attribute ,也就是说,这种属性只要在html标签中出现了,就会有这个属性,attribute就会把它解析成 xx=’xx’ , 而prop中会认为是true。

写的时候要注意,要么只写xx, 要么写 xx=’xx’ 同名字符串,要不就是空字符串。

<div hidden='true'> </div>// this is wrong
<div hidden> </div>//ok
<div hidden=''></div>//ok
<div hidden='hidden'></div> //ok

from HTML5 Spec

2.5.2 Boolean attributes
A number of attributes are boolean attributes. The presence of a boolean attribute on an element represents the true value, and the absence of the attribute represents the false value.

If the attribute is present, its value must either be the empty string or a value that is an ASCII case-insensitive match for the attribute’s canonical name, with no leading or trailing whitespace.

The values “true” and “false” are not allowed on boolean attributes. To represent a false value, the attribute has to be omitted altogether.

the full list of boolean attributes in html 4.01 /xhtml1.0
所有这种布尔属性,现在还在用的主要有checked selected disabled readonly multiple ismap defer noresize

checked (input type=checkbox/radio)
selected (option)
disabled (input, textarea, button, select, option, optgroup)
readonly (input type=text/password, textarea)
multiple (select)
ismap isMap (img, input type=image)

defer (script)
declare (object; never used)
noresize noResize (frame)
nowrap noWrap (td, th; deprecated)
noshade noShade (hr; deprecated)
compact (ul, ol, dl, menu, dir; deprecated)

接下来继续说property 与 attribute

attribute 就是 解析 markup 中得到的属性,而 property是对于dom节点而言的 。是固有的,如果什么值都不给,也会有,不过是default值,而不是undefined
仍以input为例,标签中去掉checked之后,就会是

这里写图片描述

这其实就是attribute与property的区别了。attribute是解析markup(html标签)得到的,而property是固有的。
比如chrome浏览器中,一个dom元素打出.来,会给出这些提示的属性和方法。

这里写图片描述



这里插一笔 id 和class
id很少在用的时候改变。建议是,除非你清楚地知道你在做什么,不然不要动它。
class比较特殊,经常用它来变换css属性,注意在prop中没有class,只有className 和 classList
这里写图片描述

总结一下:
className 是字符串 以空格间隔 不好操作
classList 是数组 或者说是对象更合适 可以用[index]来取得class的每一个值 有个属性叫value就等于className 还有两个方法 add 与 remove,可以增删class。


关于怎么使用.prop() 和 .attr()

固有属性用prop DOM的会变化的属性,比如勾选了/不勾选,也用prop.

自己加的属性用.attr(),比如data-XX, 不然取不到。

以及,gulp压缩html的工具gulp-html-minifier中有个option,就是是否省略布尔型属性的,那个的含义就是在压缩后只显示其属性名,而不是readonly=”readonly”这样的

Obsidian和Typora图片路径同步终极指南:告别混乱的assets文件夹 本文详细解析了Obsidian与Typora图片路径同步的终极解决方案,通过Custom Attachment Location插件实现动态路径管理,解决了两款工具间图片兼容性问题。文章提供了从基础配置到高级应用的完整指南,帮助用户告别混乱的assets文件夹,提升工作效率。 阅读详情

相关推荐

避坑指南:汇川SV660N配合SOEM时,PDO映射与CiA402状态机那些容易出错的地方

本文深入解析汇川SV660N伺服驱动与SOEM主站在PDO动态映射和CiA402状态机切换中的常见问题,提供实战代码和调试技巧。重点解决PDO配置时序、状态机转换同步等关键难点,帮助工程师避免典型错误,实现稳定通信与控制。

weixin_30653023的博客 496

JS中attr 和 prop 的区别

attr : 设置或返回被选元素的属性值. prop : 获取在匹配的元素集中的第一个元素的属性值。 attr 和 prop 的本质 attr 是 attribute 的缩写,prop 是 property 的缩写,都有属性的意思,只不过 attr 是操作 html 文档节点属性,prop 是操作 js 对象属性. attr 在 js 中使用的是 setAttribute 和 getAttribute 而 prop 直接使用原生 js 的 element[value] 和 element[value]=ke

weixin_49199038的博客 5126

IEC103协议实战指南:报文解析与传输优化策略

本文深入解析IEC103协议在电力自动化系统中的核心应用,重点拆解其固定帧与可变帧两种报文格式,并详细阐述了主从问答与非平衡传输机制。文章结合实战经验,针对报文解析中的常见问题(如字节序、超时重发)提供了解决方案,并探讨了传输层优化策略,旨在帮助工程师实现更可靠、高效的通信链路。

r2s3t4的博客 541

prop和attr的区别

prop和attr的选择

wxqwxq123444的博客 3239

Unity四部曲(核心)

需要先改成Cube复杂的展开留到unity进阶再说。

ultraman1234566的博客 2797

四足机器人关节电机FOC控制实战:从磁编码器校准到SVPWM调试避坑指南

本文详细解析了四足机器人关节电机FOC控制实战,涵盖磁编码器校准、电流环调试和SVPWM波形优化等关键环节。通过MIT Cheetah案例展示如何解决21倍电气误差问题,并提供相序自动校正、PI参数整定等实用代码片段,帮助工程师避开永磁同步电机(PMSM)控制中的常见陷阱。

weixin_29281915的博客 488

jquery中attr和prop的区别

    在系统中想判断一个CheckBox是否选中,当选中时执行一系列操作。想让弹出CheckBox当前的状态。首先我使用的attr属性来判断当前的状态,但是代码不执行,后来发现判断直接没有操作。    jQuery文档中,attr和prop的参数都是一样的,而这两个东西都被认为是属性,那么他们之间到底有什么区别呢?下面我们一起验证下。attr与prop的全称attr全称attribute(属性)...

给你一半糖 425

深入解析WIFI与蓝牙模块电路设计:从原理到实战

本文深入解析了WIFI与蓝牙模块的电路设计,从核心原理到实战应用。文章以AP6256模块为例,详细拆解了电源树、时钟电路、接口设计及天线射频路径等关键环节,并提供了PCB布局布线的实用准则与调试方法,旨在帮助硬件工程师设计出稳定可靠的无线产品,规避常见陷阱。

weixin_29186249的博客 148

JavaScript--prop和attr的用法

在JavaScript中,prop和attr()是jQuery库提供的一个方法,用于获取或设置DOM元素的属性值。prop()prop()方法用于获取或设置HTML元素的属性值。通过prop()方法可以设置HTML元素的固有属性(如checked、disabled等)以及自定义属性。其中,selector为选择器,可以是元素的标签名、类名、id等;propertyName为属性名称;value为要设置的属性值。attr()attr()方法用于获取或设置HTML元素的属性值。通过attr()

m0_74293254的博客 3296

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3343

USB 基础学习:USB 电气信号介绍

USB电气信号技术解析 USB通信的核心是差分信号传输技术,通过D+和D-两根线传输相位相反的电压信号实现数据通信。USB信号系统包含三类关键信号:差分数据信号(抗干扰性强)、单端状态信号(用于设备识别)和电源信号(提供5V供电)。USB2.0采用400mV电压摆幅和NRZI编码,支持低速(1.5Mbps)至高速(480Mbps)传输;USB3.0则新增专用差分对,数据速率可达20Gbps。物理层通过上拉/下拉电阻检测设备连接,高速模式需特殊握手协议。抗干扰设计的关键在于保持差分线等长、阻抗匹配和使用共模扼

浩瀚之水的专栏 1782

jquery中关于attr和prop的区别!

昨天这两个方法搞混了,被公司大佬说了下,虽然没说什么,但还是挺尴尬的。重点是大佬说你可以用attr方法,我特么第一句话就是怎么用呢。原谅我使用vue之后太依赖框架的东西了,以至于以前jquery玩的也挺溜的我,慢慢淡忘了 jquery。罪过罪过呢!jquery还是一款很优秀的函数库,哎 不说了 继续码代码了。 $().attr() 允许我们往元素上加上自定义属性 我们也可以用attr 获取提前定义好的在上面的 自定义属性值 当然 也可以获取到 元素 自带的一些属性 那么 attr 是获取和设置 属性的

Java&Develop的博客 5988

北斗导航:提高RTK定位精度的GIS应用

其中,RTK(Real-Time Kinematic)定位技术是一种实时差分定位技术,通过利用基准站的观测数据来对移动站的测量值进行差分处理,以提高定位精度。差分处理的关键是基准站的观测数据,基准站通过全球定位系统(如北斗导航系统)获取卫星信号并记录观测数据。通过使用RTK定位技术,结合北斗导航系统的观测数据和差分处理,可以实现高精度的定位结果。我们将介绍RTK定位的原理、使用北斗导航系统进行RTK定位的步骤,以及如何将定位结果与GIS数据进行集成和可视化展示。步骤1:设置基准站和移动站。

OvzStream的博客 474

HTML技能点--布尔属性和自定义属性

布尔属性用于表达是否两个方面,所以可以直接将属性放入元素中表示是,如果不放元素的话就是否。 例如下面的例子,就表示disabled,即禁用该元素。

编程副队长 1979

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jQuery 中 获取表单属性`.prop()` 和 `.attr()` 的区别与使用场景

即 DOM 元素的 JavaScript 属性。,即 HTML 标签中的属性。用于获取或设置元素的。用于获取或设置元素的。

HinINAX的博客 831

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

prop和attr异同

prop()可以动态获取标签的状态,attr()不能动态获取标签的状态(例:input未设置checked时,不论input是否被选中,attr()获取checked属性,均是返回undefined,若设置均返回checked;prop()和attr()给dom设置属性时,如果有多个可匹配的dom,全部都被设置上属性;prop()获取未设置的固有属性,返回空值,attr()获取未设置的属性,返回undefined。prop()和attr()取dom时,如果有多个可匹配的dom,只取第一个。

m0_67418845的博客 430

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jquery1.6中的.prop()和.attr()异同

最近在iteye的新闻中看到jQuery已经更新到了1.6.1。和之前版本的最大变化是增加了.prop方法。但是.prop()方法和.attr()方法,单从字面上很难区分。在汉语中properties和attributes都有表示“属性”的意思。下面根据这篇博文(javascript:mctmp(0);),简要翻译了.prop()和.attr()的用法: 1、从1.5.2升级到1.6.1 通过...

别人在走,我在跑 960

JS中.prop() 和.attr()的区别

.prop() 只能获得官方定义的属性值,包括没有写出来的属性。 <input type="checkbox" id="checkAll"> var flag=$("#checkAll").prop("checked");//可以获得 checked是默认的属性,不写也会存在。 .attr() 只能获得代码中显示的属性的值,包括自己定义的属性的值,无法获得没有显示的属性值 <input type="checkbox" id="checkAll" xxx="aaa"> //xxx是自

a___calf的博客 1085

attr 与prop 的区别

特别是当涉及到布尔属性(如 checked、disabled)时,因为它更准确、更可靠。是两个常用的方法,用于操作 HTML 元素的属性和属性值。则更适合于处理自定义属性或 HTML5 中的新属性。它们之间的区别主要在于针对不同类型的属性操作。在大多数情况下,应该优先使用。

linjun的博客 594

jQ中attr与prop的区别

先说一说官方定义.attr()获取匹配的元素集合中的第一个元素的属性值,设置每个匹配元素的一个或多个属性.prop()获取匹配的元素集中第一个元素的属性(property)值为匹配的元素设置一个或多个属性(properties)什么时候用prop?什么时候该用attr?它们两个之间有什么区别?我们举两个例子。<a href="#" target="_self" cl...

青年码农 411

iOS:ARC相关知识,assign/copy/retain/strong/weak/readyonly/readwrite/nonatomic/atomic

dfsf ARC 自动引用计数 ARC不是垃圾回收,而是编译器自动插入代码来减少程序员的代码输入和失误。 同时比垃圾和效率要高,因为其不影响运行时间,相当于自己管理内存。 总是通过属性来管理实例变量(init/dealloc除外),在deal

混迹于移动互联网和手机行业 9269

.prop()与.attr()

因此, jQuery 1.6具有新的功能prop() 。 $(selector).click(function(){ //instead of: this.getAttribut

asdfgh0077的博客 817

前端学习回顾-05

HTML 块级元素和内联元素、HTML 布尔属性、HTML 省略包围属性值的引号、HTML 单引号或双引号、HTML 空格符和换行符的使用、HTML 内容中包含特殊字符、HTML 注释

huaqi_的博客 426

HTML5布尔属性

有些属性属于布尔属性,这些属性不需要赋值,只需将属性名添加到元素中即可 常见的布尔属性有:disabled、hidden

WinstonLau的博客 2569

JavaScript设置与获取标签属性

JavaScript获取标签属性 先介绍两个常用方法: attr() 方法设置或返回被选元素的属性和值。 当该方法用于返回属性值,则返回第一个匹配元素的值。 当该方法用于设置属性值,则为匹配元素设置一个或多个属性/值对。 prop() 方法设置或返回被选元素的属性和值。 当该方法用于返回属性值时,则返回第一个匹配元素的值。 当该方法用于设置属性值时,则为匹配元素集合设置一个或多个属性/值对...

weixin_43114485的博客 1527

jQuery中attr()和prop()的区别与使用

API attr()系列 attr(attributeName) 读取第一个匹配到的元素的指定属性值。 attr(attributeName, value) 设置单个指定的属性值。 attr(attributes) 设置多个。 attr(attributeName, func) func为function(index, thisAttr)。 prop(...

wuyujin1997的博客 1万+
上一篇: 微信/app环境下为何文字莫名其妙地居中?记个align-self/align-items的坑
下一篇: $.(fn) vs document.body.onload vs window.onload
十方魔
博客等级 码龄10年 202粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值