// 1,通过HTMLElement类型的属性来获得和设置元素特性(设置的是元素属性,比如class,id,title,而不是css样式,比如float,border等)
let div = document.getElementById("div");
let link = document.getElementById("link");
// 获取
const id = div.id;
const classname = div.className;
const title = div.title;
const href = link.href;
// 设置
div.id = "boxes";
div.className = "test";
div.title = "我是标题";
link.href = "http://www.sina.com.cn"; // 2,通过getAttribute()、setAttribute() 方法,获取、设置、移除元素的特性
// 获取
div.getAttribute("id");
div.getAttribute("class");
link.getAttribute("href");
// 设置
div.setAttribute("id","myDiv");
div.setAttribute("title","我也是标题哦");
link.setAttribute("href","link.html");
// 注:不建议使用该特性设置元素的类名(浏览器不兼容),设置类名可以这样:document.getElementById("myDiv").className=("***"); // 3,通过attributes属性,获取、设置、移除元素的特性
// 获取
id2 = div.attributes["id"].nodeValue;
// 设置
div.attributes["id"].nodeValue = "myDiv2"; // 4,移除元素属性的方法
div.removeAttribute("class");
div.attributes.removeNamedItem("class"); // 5,追加类名的方法(以上设置属性值的方法,均是将原值替换掉,因为类名可以同时存在多个值,故需要增加和删除)
el.classList.add("classname");
el.classList.remove("classname");
注:classList兼容IE>=10,以下版本的兼容实现方法如下(该方法为网络上照抄的写法):
if (!("classList" in document.documentElement)) {

  Object.defineProperty(HTMLElement.prototype, 'classList', {
get: function() {
const self = this;
function update(fn) {
return function(value) {
let classes = self.className.split(/\s+/g);
let index = classes.indexOf(value);
fn(classes, index, value);
self.className = classes.join(" ");
}
} return {
add: update(function(classes, index, value) {
if (!~index) classes.push(value);
}), remove: update(function(classes, index) {
if (~index) classes.splice(index, 1);
}), toggle: update(function(classes, index, value) {
if (~index)
classes.splice(index, 1);
else
classes.push(value);
}), contains: function(value) {
return !!~self.className.split(/\s+/g).indexOf(value);
}, item: function(i) {
return self.className.split(/\s+/g)[i] || null;
}
};
}
});
}

dom操作------操作元素属性的若干方法的更多相关文章

  1. jquery 用于操作动态元素的delegate/on方法

    delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素). 在做项目中有很多由ajax动态生成的html标签,jquery对这些标签不会响应\((selector).c ...

  2. “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法

    百思不得其解,最后发现 1:实体中的表必须有主键(数据库中的表必须有主键),如果没有,会有这样的提示 2:主键设置好后,运行还是会出现类似问题,那就一个郁闷 1):方法一:先从EF中删除刚设置主键的模 ...

  3. robotframework,移动端(小程序)自动化,获取元素属性值的方法

    如下图,获取商品价格 属性值显示在content-desc内 传统的get text指定是无法获得到这个元素指定属性的值的 只有通过使用AppiumLibrary.get element attrib ...

  4. jQuery元素属性操作

    在jQuery中,用attr()方法来获取或者设置元素属性,removeAttr()方法用来删除元素属性. attr() 实例: var $para=$('p');//获取<p>节点 va ...

  5. JS-002-修改元素属性(以按钮示例)

    此文以修改 button 元素属性(例如:添加属性.修改属性.修改颜色样式.边框样式等)为简单示例,演示 js 修改 HTML 元素属性的基本方法,敬请参阅.若有不足之处敬请指正,不胜感激! 多不闲述 ...

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

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

  7. 第一百六十六节,jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度、偏移、滚动条

    jQuery,基础 DOM 和 CSS 操作,元素内容,元素属性,css和class,元素宽度高度.偏移.滚动条 学习要点: 1.DOM 简介 2.设置元素及内容 3.元素属性操作 4.元素样式操作 ...

  8. Javascript操作元素属性方法总结

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  9. javascript 操作元素属性的方法

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

随机推荐

  1. 用指定的用户名和密码无法登录到该ftp服务器

    今天在win2008 R2 服务器上默认部署FTP站点时遇到了两个小问题,在网上找了好久资料后发现还是解决不了问题,最终找到问题的原因,在此共享给大家 1.Windows无法访问此文件夹.请确保输入的 ...

  2. MarkdownPad 2 for Windows 10 预览问题解决方案。

    知乎问题: Windows 10 下 MarkdownPad2 预览无法显示是怎么回事? 文章提供的解决方法可以奏效.具体如下: 在我的 Win10 上测试了一次,确实会遇到这个问题,官方的说法是从 ...

  3. C# 利用VS中的插件来打包并发布winfrom程序

    1.先在VS 的扩展更新中搜索此插件[2015 installer Projects],点击下载,安装需要关闭VS 2.安装完毕之后新建项目 3.选择“application folder”项,然后在 ...

  4. 关于.net core使用nginx做反向代理获取客户端ip的问题

    1.正常情况下.net core获取客户端ip是比较简单的 /// <summary> /// 获取客户Ip /// </summary> /// <param name ...

  5. 【BZOJ3160】 万径人踪灭(FFT,manacher)

    前言 多项式真的很难♂啊qwq Solution 考虑求的是一个有间隔的回文串,相当于是: 总的答案-没有间隔的答案 考虑总的答案怎么计算?FFT卷一下就好了. 对于每一位字符,有两种取值,然后随便卷 ...

  6. Akka(20): Stream:异步运算,压力缓冲-Async, batching backpressure and buffering

    akka-stream原则上是一种推式(push-model)的数据流.push-model和pull-model的区别在于它们解决问题倾向性:push模式面向高效的数据流下游(fast-downst ...

  7. mybatis四大接口之 ParameterHandler

    1.  继承结构 只有一个默认的实现类 2. ParameterHandler 获取参数对象: 设置参数对象: public interface ParameterHandler { Object g ...

  8. 常用的SQL调优

    1. 不要使用 select * ,使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的. 2.  避免在 where 子句中使用 or 来连接条件,可以 ...

  9. day 38 jq 入门 学习(一)

    前情提要: jq是简化版本的js 可以把很多很复杂的js 提炼让前端代码更好写 一:jq的使用 <!DOCTYPE html> <html lang="en"&g ...

  10. 09-03 Java 抽象类

    抽象类的特点 /* 抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类. 抽象类的 ...