结论:内部会调用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元素属性值如果设置为对象的更多相关文章

  1. (四)Jsoup 获取 DOM 元素属性值

    第一节: Jsoup 获取 DOM 元素属性值 Jsoup获取DOM元素属性值 比如我们要获取博客的href属性值: 我们这时候就要用到Jsoup来获取属性的值 : 我们给下示例代码: package ...

  2. Jsoup(四)-- Jsoup获取DOM元素属性值

    1.获取博客园的博客标题以及博客地址,获取友情链接 2.代码实现: public static void main(String[] args) throws Exception{ // 创建http ...

  3. jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解

    jQuery操纵DOM元素属性 attr()和removeAtrr()方法使用详解 jQuery中操纵元素属性的方法: attr(): 读或者写匹配元素的属性值. removeAttr(): 从匹配的 ...

  4. jquery获取、改变元素属性值

    //标签的属性称作元素属性,在JS里对应的DOM对象的对应属性叫DOM属性.JS里的DOM属性名有时和原元素属性名不同. //==================================操作元 ...

  5. JS操作DOM元素属性和方法

    Dom元素基本操作方法API,先记录下,方便以后使用. W3C DOM和JavaScript很容易混淆不清.DOM是面向HTML和XML文档的API,为文档提供了结构化表示,并定义了如何通过脚本来访 ...

  6. JQuery处理DOM元素-属性操作

    JQuery处理DOM元素-属性操作 //操作元素的属性: $('*').each(function(n){ this.id = this.tagName + n; }) //获取属性值: $('') ...

  7. JavaScript DOM 元素属性 状态属性

    JavaScript DOM 元素属性 状态属性 版权声明:未经允许,严禁转载! 元素的属性 核心 DOM 为我们提供了操作元素标准属性的统一 API. 所有属性节点都储存在元素的 attribute ...

  8. Selenium2学习-028-WebUI自动化实战实例-026-获取页面元素值或者元素属性值

    在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理.比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车.到货通知.暂不销售等),那么在实际的操作 ...

  9. vuejs2.0如何获取dom元素自定义属性值

    1.设置定义属性值  :data-value=".." <ul class="header-ul"> <li class="flex ...

随机推荐

  1. UEditor如何读取数据库信息?

    你用的什么语言,服务器端生成的时候,直接写在里面就可以了啊,比如 <textarea name="content" cols="800" rows=&qu ...

  2. HTTP 请求报文和响应报文分析和解刨!!

    http请求和响应报文分析 一>http请求报文主要包括三个部分:1.请求行:2.请求头:3;请求体: 1,请求行一般包括三个部分:请求方式:请求url : http协议版本. 请求方法:大部分 ...

  3. 洛谷P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…

    题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者.因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走 ...

  4. OOA,OOD,OOP区别

    定义: OOA(Object-Oriented Analysis,面向对象分析方法) OOD(Object-Oriented Design,面向对象设计) OOP(Object Oriented Pr ...

  5. httpClient 几种超时问题

    HttpClient的有3种超时时间,分别是: 1. [java] view plaincopyprint? ConnManagerParams.setTimeout(params, 1000); C ...

  6. Redis-Cluster集群原理

    一.redis-cluster 官方推荐的 redis 集群解决方案,优点在于去中心化, 去中间件,也就是说,集群中的每个节点都是平等的关系,都是对等的,每个节点都保存各自的数据和整个集群的状态.每个 ...

  7. volatile可见性和指令重排

    volatile关键字的2个作用 1.线程的可见性 2.防止指令重排 什么是线程的可见性? 线程的可见性 就是一个线程对一个变量进行更改操作 其他线程获取会获得最新的值. 线程在执行的行 操作主线程的 ...

  8. 数据库-mongodb有哪些命令工具

    MongoDB                  系统文件说明 1.mongo.exe              命令行客户端工具 2.mongod.exe            数据库服务程序 3. ...

  9. rabbitMQ学习笔记(六) topic类型消息。

    上一节中使用了消息路由,消费者可以选择性的接收消息. 但是这样还是不够灵活. 比如某个消费者要订阅娱乐新闻消息 . 包括新浪.网易.腾讯的娱乐新闻.那么消费者就需要绑定三次,分别绑定这三个网站的消息类 ...

  10. rabbitMQ学习笔记(二) 简单的发送与接收消息 HelloWorld

    首先要下载rabbitmq的javaClient库,然后加入到项目中,下载地址为:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.1. ...