DOM元素属性值如果设置为对象
结论:内部会调用toString方法,将设置的对象转换为字符串添加给相应的属性;
这个问题呢,是通过jQuery的each方法中,回调函数的this指向问题而来;
我们知道,回调函数中的this如果指向的是基本数据类型,那么系统会自动将这个基本数据类型的值包装为对应的对象类型;
就比如:

数组里面存的是string类型的值,然后jq实例调用each方法,打印的this如下图所示:

this指向的基本数据类型的值被转换为了String类型;
但是这里说的不是这个问题,而是和这个问题类似,我们在给DOM元素设置属性值的时候,如果设置的是对象呢?
获取页面中的span,然后给两个span分别设置属性‘a’,属性值为两个对象:

看看设置后显示的结果:

第一个属性值:内部调用toString方法将{a : 'a',b : 'b'}对象转换为字符串设置;
第二个属性值:同理,也是调用toString方法将String对象的实例转换为字符串设置;
那么,我们在回到jQuery中,
如果用each方法给DOM添加属性值;
jQuery中的each方法的回调函数中的this,如果指向的是字符串类型的数据,那么在回调函数中操作this给元素添加属性值,是没有问题的,因为this即使被转换为了相应的对象类型数据,那么再给DOM元素添加的时候,内部会调用toString方法在对象类型的数据转换为字符串添加,就相当于‘又折腾回来了’;
那么,如果this指向的不是字符串类型数据,那么就操作参数吧~
好了,那就到这儿吧,如果有不对的地方,欢迎大家指正,望在前端的道路上共勉!
DOM元素属性值如果设置为对象的更多相关文章
- (四)Jsoup 获取 DOM 元素属性值
		第一节: Jsoup 获取 DOM 元素属性值 Jsoup获取DOM元素属性值 比如我们要获取博客的href属性值: 我们这时候就要用到Jsoup来获取属性的值 : 我们给下示例代码: package ... 
- Jsoup(四)-- Jsoup获取DOM元素属性值
		1.获取博客园的博客标题以及博客地址,获取友情链接 2.代码实现: public static void main(String[] args) throws Exception{ // 创建http ... 
- jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解
		jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解 jQuery中操纵元素属性的方法: attr(): 读或者写匹配元素的属性值. removeAttr(): 从匹配的 ... 
- jquery获取、改变元素属性值
		//标签的属性称作元素属性,在JS里对应的DOM对象的对应属性叫DOM属性.JS里的DOM属性名有时和原元素属性名不同. //==================================操作元 ... 
- JS操作DOM元素属性和方法
		Dom元素基本操作方法API,先记录下,方便以后使用. W3C DOM和JavaScript很容易混淆不清.DOM是面向HTML和XML文档的API,为文档提供了结构化表示,并定义了如何通过脚本来访 ... 
- JQuery处理DOM元素-属性操作
		JQuery处理DOM元素-属性操作 //操作元素的属性: $('*').each(function(n){ this.id = this.tagName + n; }) //获取属性值: $('') ... 
- JavaScript DOM 元素属性 状态属性
		JavaScript DOM 元素属性 状态属性 版权声明:未经允许,严禁转载! 元素的属性 核心 DOM 为我们提供了操作元素标准属性的统一 API. 所有属性节点都储存在元素的 attribute ... 
- Selenium2学习-028-WebUI自动化实战实例-026-获取页面元素值或者元素属性值
		在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理.比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车.到货通知.暂不销售等),那么在实际的操作 ... 
- vuejs2.0如何获取dom元素自定义属性值
		1.设置定义属性值 :data-value=".." <ul class="header-ul"> <li class="flex ... 
随机推荐
- javaScript原型、闭包和异步操作
			同学们,这篇博客有点水了,并不是说我不想写这块的内容,是因为查了很多资料,看了很多帖子之后,发现园内王福朋老师写的这系列文章真的很好,他的这系列的博客我已经看了3.4遍了,每一次都有新的收获,我可写不 ... 
- Project Euler 50 Consecutive prime sum
			题意: 素数41可以写成六个连续素数的和: 41 = 2 + 3 + 5 + 7 + 11 + 13 在小于一百的素数中,41能够被写成最多的连续素数的和. 在小于一千的素数中,953能够被写成最多的 ... 
- 微信公众号开发之获取微信用户的openID
			(注:openID同一用户同一应用唯一,UnionID同一用户不同应用唯一.不同应用指微信开放平台下的不同用户.) 1. 申请测试号(获得appID.appsecret) 2. 填写服务器配置并验 ... 
- nmcli 静态方式添加IP地址
			[root@ansible02:/root] > ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state U ... 
- PatentTips - Optimizing power usage by factoring processor architectural events to PMU
			BACKGROUND Processor power consumption has become a major issue in recent years. The current trend o ... 
- 工具-VS常用快捷键
			项目管理: Ctrl+Shift+N: 新建项目 Ctrl+Shift+O: 打开项目 Ctrl+Shift+S: 全部保存 Shift+Alt+C: 新建类 Ctrl+Shift+A: 新建项 Sh ... 
- POJ 1811
			使用Pollard_rho算法就可以过了 #include <iostream> #include <cstdio> #include <algorithm> #i ... 
- Erlang语言入门
			Erlang语言入门 下载Erlang,http://www.erlang.org/downloads 安装之后开始菜单中有Erlang图标,打开之后是Erlang Shell,可以定制喜欢的颜色和字 ... 
- android优化 清除无效代码 UCDetector
			android下优化 清除无效 未被使用的 代码 UCDetector 官方下载地址:http://www.ucdetector.org/index.html UCDetector 是 eclips ... 
- Hdu 4280 Island Transport(最大流)
			Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ... 
