H5如何自定义属性

作者: 杭城小刘 | 来源:发表于2017-12-05 22:32 被阅读162次

一、方式一

在很早以前我们自定义元素的属性要通过 user-defined-attribute="value"的方式来设置自己需要的属性

设置自定义属性

<h1 user-defined-attribute="share">杭城小刘</h1>

获取自定义属性

document.getElementsByTagName("h1")[0].getAttribute("user-defined-attribute")

二、方式二

现在H5为我们提供了一个data属性 **"data-" **作为前缀,可以让所有的HTML元素都支持自定义的属性,只要在标签里面以 "data-"

为前缀定义需要的属性即可

设置自定义属性

<h1 data-share="true">杭城小刘</h1>

获取自定义属性(使用H5自定义属性对象Dataset来获取)

var myDiv = document.getElementsByTagName("h1")[0];
var theValue = myDiv.dataset;    //DOMStringMap对象

document.getElementsByTagName("h1")[0].dataset.share
document.getElementsByTagName("h1")[0].dataset["share"]
document.getElementsByTagName("h1")[0].getAttribute("data-share")

DOMStringMap是HTML5一种新的含有多个名-值对的交互变量

三、H5 dataset的操作

删掉一个data属性

delete myDiv.dataset.share

增加一个属性

myDiv.dataset.happy="ok"

四、dataset兼容性处理

如果不支持dataset,有必要做一下兼容性处理

if(myDiv.dataset){
myDiv.dataset.sad = "false";
var thevalue = myDiv.dataset.sad;
}else{
myDiv.setAttribute("data-attribute","sad");
var theValue = myDiv.getAttribute("data-attribute"); // 获取自定义属性
}

做一个实验:

<!DOCTYPE html>
<html>

<head>
<title>我的标题</title>
<meta charset="utf-8" />
</head>

<body>
<h1 data-share="true">杭城小刘</h1>
</body>
<script>
console.log(document.getElementsByTagName("h1")[0].getAttribute("user-defined-attribute"));
</script>

</html>

然后利用chrome调试,在console命令行分别输入3条指令,结果如下图

实验结果

可以看出来,dataset后跟的属性是驼峰命名原则,如果多个单词第二个单词首字母需要大写,检查元素可以看到神奇的变化。

相关文章

  • 自定义属性操作

    1、自定义属性操作: 2、tab栏切换案例: 3、H5自定义属性:

  • H5自定义属性及兼容处理

    "data-"前缀 可以让所有的HTML元素都支持自定义的属性。 举个栗子: 获取自定义属性(使用H5自定义属性对...

  • 使用Lua Modifier实现自定义属性

    这篇文章我们将通过自定义“幸运”属性来介绍如何使用自定义的属性。 1. 自定义属性的储存 自定义属性的储存在dot...

  • data-*自定义属性

    说明HTML5增加了一项新的功能自定义属性,也就是data -*自定义属性。在H5中是以data-为前缀来设置,可...

  • H5如何自定义属性

    一、方式一 在很早以前我们自定义元素的属性要通过 user-defined-attribute="value"的方...

  • 37.要点

    1.jQuery中attr有个bug,只能第一次设置值需要用prop替代 2.h5风格自定义属性 h5自定义属性风...

  • `data-`属性的作用是什么?

    data-为H5新增的为前端开发者提供自定义的属性,这些属性集可以通过对象的 dataset 属性获取,不支持该属...

  • 给标签自定义属性html

    H5为我们提供了一个data属性——“data-”前缀,可以让所有的HTML元素支持自定义属性,只要在标签里面以”...

  • 编译打包篇 — 灵活使用BuildConfig

    看完本篇将了解到:第一,如何在BuildConfig文件中构建自定义的属性;第二,如何利用命令行修改这些自定义属性...

  • 如何理解Angular自定义指令directive的scope属

    如何理解Angular自定义指令directive的scope属性? ...

网友评论

    本文标题:H5如何自定义属性

    本文链接:https://www.haomeiwen.com/subject/egomvxtx.html