element怎么设置复选框属性_【JavaScript 教程】DOM——属性的操作
作者 | 阮一峰
HTML 元素包括标签名和若干个键值对,这个键值对就称为“属性”(attribute)。
<a id="test" href="http://www.example.com"> 链接a>
上面代码中,a
元素包括两个属性:id
属性和href
属性。
属性本身是一个对象(Attr
对象),但是实际上,这个对象极少使用。一般都是通过元素节点对象(HTMlElement
对象)来操作属性。本章介绍如何操作这些属性。
1、Element.attributes 属性
元素对象有一个attributes
属性,返回一个类似数组的动态对象,成员是该元素标签的所有属性节点对象,属性的实时变化都会反映在这个节点对象上。其他类型的节点对象,虽然也有attributes
属性,但返回的都是null
,因此可以把这个属性视为元素对象独有的。
单个属性可以通过序号引用,也可以通过属性名引用。
// HTML 代码如下// document.body.attributes[0]document.body.attributes.bgcolordocument.body.attributes['ONLOAD']
注意,上面代码的三种方法,返回的都是属性节点对象,而不是属性值。
属性节点对象有name
和value
属性,对应该属性的属性名和属性值,等同于nodeName
属性和nodeValue
属性。
// HTML代码为//
var n = document.getElementById('mydiv');
n.attributes[0].name // "id"
n.attributes[0].nodeName // "id"
n.attributes[0].value // "mydiv"
n.attributes[0].nodeValue // "mydiv"
下面代码可以遍历一个元素节点的所有属性。
var para = document.getElementsByTagName('p')[0];var result = document.getElementById('result');if (para.hasAttributes()) {var attrs = para.attributes;var output = '';for(var i = attrs.length - 1; i >= 0; i--) { output += attrs[i].name + '->' + attrs[i].value; } result.textContent = output;} else { result.textContent = 'No attributes to show';}
2、元素的标准属性
HTML 元素的标准属性(即在标准中定义的属性),会自动成为元素节点对象的属性。
var a = document.getElementById('test');a.id // "test"a.href // "http://www.example.com/"
上面代码中,
a元素标签的属性id
和href
,自动成为节点对象的属性。
这些属性都是可写的。
var img = document.getElementById('myImage');img.src = 'http://www.example.com/image.jpg';
上面的写法,会立刻替换掉
img对象的src
属性,即会显示另外一张图片。
这种修改属性的方法,常常用于添加表单的属性。
var f = document.forms[0];f.action = 'submit.php';f.method = 'POST';
上面代码为表单添加提交网址和提交方法。
注意,这种用法虽然可以读写属性,但是无法删除属性,
delete运算符在这里不会生效。
HTML 元素的属性名是大小写不敏感的,但是 JavaScript 对象的属性名是大小写敏感的。转换规则是,转为 JavaScript 属性名时,一律采用小写。如果属性名包括多个单词,则采用骆驼拼写法,即从第二个单词开始,每个单词的首字母采用大写,比如
onClick。
有些 HTML 属性名是 JavaScript 的保留字,转为 JavaScript 属性时,必须改名。主要是以下两个。
for
属性改为htmlFor
class
属性改为className
另外,HTML 属性值一般都是字符串,但是 JavaScript 属性会自动转换类型。比如,将字符串
true转为布尔值,将onClick
的值转为一个函数,将style
属性的值转为一个CSSStyleDeclaration
对象。因此,可以对这些属性赋予各种类型的值。
3、属性操作的标准方法
3.1、概述
元素节点提供六个方法,用来操作属性。
getAttribute()
getAttributeNames()
setAttribute()
hasAttribute()
hasAttributes()
removeAttribute()
这有几点注意。
(1)适用性
这六个方法对所有属性(包括用户自定义的属性)都适用。
(2)返回值
getAttribute()
只返回字符串,不会返回其他类型的值。
(3)属性名
这些方法只接受属性的标准名称,不用改写保留字,比如
for和class
都可以直接使用。另外,这些方法对于属性名是大小写不敏感的。
var image = document.images[0];image.setAttribute('class', 'myImage');
上面代码中,
setAttribute方法直接使用class
作为属性名,不用写成className
。
3.2、Element.getAttribute()
Element.getAttribute
方法返回当前元素节点的指定属性。如果指定属性不存在,则返回null
。
// HTML 代码为//
var div = document.getElementById('div1');
div.getAttribute('align') // "left"
3.3、Element.getAttributeNames()
3.3、Element.getAttributeNames()
Element.getAttributeNames()
返回一个数组,成员是当前元素的所有属性的名字。如果当前元素没有任何属性,则返回一个空数组。使用Element.attributes
属性,也可以拿到同样的结果,唯一的区别是它返回的是类似数组的对象。
var mydiv = document.getElementById('mydiv');mydiv.getAttributeNames().forEach(function (key) {var value = mydiv.getAttribute(key);console.log(key, value);})
上面代码用于遍历某个节点的所有属性。
3.4、Element.setAttribute()
3.4、Element.setAttribute()
Element.setAttribute
方法用于为当前元素节点新增属性。如果同名属性已存在,则相当于编辑已存在的属性。该方法没有返回值。
// HTML 代码为// Hello Worldvar b = document.querySelector('button');b.setAttribute('name', 'myButton');b.setAttribute('disabled', true);
元素的上面代码中,
buttonname
属性被设成myButton
,disabled
属性被设成true
。
就会变成字符串这里有两个地方需要注意,首先,属性值总是字符串,其他类型的值会自动转成字符串,比如布尔值
truetrue
;其次,上例的disable
属性是一个布尔属性,对于元素来说,这个属性不需要属性值,只要设置了就总是会生效,因此setAttribute
方法里面可以将disabled
属性设成任意值。
3.5、Element.hasAttribute()
3.5、Element.hasAttribute()
Element.hasAttribute
方法返回一个布尔值,表示当前元素节点是否包含指定属性。
var d = document.getElementById('div1');if (d.hasAttribute('align')) { d.setAttribute('align', 'center');}
节点是否含有上面代码检查
divalign
属性。如果有,则设置为居中对齐。
3.6、Element.hasAttributes()
3.6、Element.hasAttributes()
Element.hasAttributes
方法返回一个布尔值,表示当前元素是否有属性,如果没有任何属性,就返回false
,否则返回true
。
var foo = document.getElementById('foo');foo.hasAttributes() // true
3.7、Element.removeAttribute()
3.7、Element.removeAttribute()
Element.removeAttribute
方法移除指定属性。该方法没有返回值。
// HTML 代码为//
document.getElementById('div1').removeAttribute('align');// 现在的HTML代码为//
4、dataset 属性
4、dataset 属性
有时,需要在HTML元素上附加数据,供 JavaScript 脚本使用。一种解决方法是自定义属性。
<div id="mydiv" foo="bar">
元素自定义了上面代码为
divfoo
属性,然后可以用getAttribute()
和setAttribute()
读写这个属性。
var n = document.getElementById('mydiv');n.getAttribute('foo') // barn.setAttribute('foo', 'baz')
这种方法虽然可以达到目的,但是会使得 HTML 元素的属性不符合标准,导致网页代码通不过校验。
属性。更好的解决方法是,使用标准提供的
data-*
<div id="mydiv" data-foo="bar">
属性,它指向一个对象,可以用来操作 HTML 元素标签的然后,使用元素节点对象的
datasetdata-*
属性。
var n = document.getElementById('mydiv');n.dataset.foo // barn.dataset.foo = 'baz'
读写上面代码中,通过
dataset.foodata-foo
属性。
属性,可以直接使用删除一个
data-*delete
命令。
delete document.getElementById('myDiv').dataset.foo;
属性,也可以用除了
datasetgetAttribute('data-foo')
、removeAttribute('data-foo')
、setAttribute('data-foo')
、hasAttribute('data-foo')
等方法操作data-*
属性。
后面的属性名有限制,只能包含字母、数字、连词线(注意,
data--
)、点(.
)、冒号(:
)和下划线(_
)。而且,属性名不应该使用A
到Z
的大写字母,比如不能有data-helloWorld
这样的属性名,而要写成data-hello-world
。
的键名时,连词线后面如果跟着一个小写字母,那么连词线会被移除,该小写字母转为大写字母,其他字符不变。反过来,转成
datasetdataset
的键名转成属性名时,所有大写字母都会被转成连词线+该字母的小写形式,其他字符不变。比如,dataset.helloWorld
会转成data-hello-world
。
element怎么设置复选框属性_【JavaScript 教程】DOM——属性的操作相关推荐
- css复选框样式_使用CSS样式复选框
css复选框样式 Introduction: 介绍: Sometimes we want to develop a website or web page that would contain a f ...
- HTML如何设置复选框、单选框以及默认选项?
本篇文章主要给大家介绍HTML怎么设置复选框以及单选框的. 我们在网站开发过程中,有时会需要实现类似调查问卷的功能,那么既然是问卷,就避免不了单选或者多选的情况.对于新手朋友来说,或许不太清楚. 下面 ...
- php调查问卷单选框标题,word调查问卷制作:怎样设置复选框各单选框
在信息自动化的时代下,为了向用户了解和采集一些基本信息,经常会使用电子调查问卷收集所需数据,采用这种形式无疑比以往的纸质调查问卷更为快捷方便. 而在电子调查问卷中,让我们最为熟悉的就是针对各种问题设定 ...
- 设置复选框选中及其使用
设置复选框选中及其使用 开发工具与关键技术:VS .MVC 撰写时间:2019/7/26 有一些需要就在你触发某个按钮的时候,单选框或者复选框就是一个选中的状态,并且要记录这个状态的时候:页面的复选框 ...
- ztree指定节点 设置复选框
ztree指定节点 设置复选框 首先,需引入ztree的js文件 <script src="../../assets/ztree/js/jquery.ztree.core-3.5.mi ...
- QTreeView 动态设置复选框
目录 动态设置复选框的步骤 QT MVC的概念 模型 添加数据 获取数据 视图 槽函数 动态设置复选框的步骤 初始化一个QTreeView 的界面,并设置相关的model // 在ui中新建两个QTr ...
- PyQt5 技巧篇-复选框绑定行内容,全选、清空、展示选中的内容功能实现演示,设置复选框选中,检查复选框选中状态
先看效果图,选中了几行,然后将选中的内容展示出来. 我设置两个有序序列,分别存储对应的复选框和行内容. 我的行内容是用的 label 标签. # 存储右边label组件的有序列表def get_L_b ...
- Java 根据模板导出Excel时,如何根据后台数据设置复选框的勾选
我之前遇到这个问题,上网查找解决方案.都说要在Excel中设置复选框的链接单元格,然后通过赋值给单元格控制复选框的勾选. 在我设置好链接单元格之后,点击复选框,单元格中的值会改变 TRUE 或 FAL ...
- html下拉复选框联动,HTML : CheckBox 复选框成组联动(JavaScript)
在页面中,经常需要控制一组 CheckBox 的选中状态,常用的操作有: 1.通过一个或者多个复选框来控制一组 CheckBox 的选中状态. 2.根据一组 CheckBox 的选中状态来决定某些控件 ...
最新文章
- 【JLOI2011】飞行路线
- github上的linux项目,克隆GitHub上项目的非Master分支
- C# -WinForm 中英文实现, 国际化实现的简单方法
- Fedora20配置tftp服务器
- 打造史上最小尺寸.Net Core单文件应用程序
- 基于 MinIO 对象存储框架的短视频点播平台设计
- UVA750 UVALive5358 8 Queens Chess Problem题解
- 基于OpenCV的计算机视觉入门(2)图片几何变换入门
- java开发常用的工具类_java开发常用工具类
- 计算机必备专用英语词汇
- vb.net的socket编程
- 工作之RF功能开发入门
- 红米K30 4G手机图纸 主板元件位号图
- 11个绝佳免费矢量素材下载网站,拿走不谢!
- python批量裁剪图片_python实现图片批量剪切示例
- 使用pyppeteer或者selenium时,chrome窗口最大化
- AO3401-ASEMI场效应管AO3401
- html将div放到页面最底部,关于html:我如何将div放在容器的底部?
- ceph命令系列(一):ceph-deploy/ceph/rados/rbd 常用命令详解
- iPhone手机通讯录怎么合并重复联系人?