正如 HTML5 语法中所阐述的,元素可以包含属性(attributes)给一个元素设置各种属性(properties)。
有些属性被定义为全局的,可以用在任何元素上,而其他的被定义为元素特有的。所有的属性都有一个名称和一个值,看起来如下面的示例所示。
下面是一个使用 HTML5 属性的例子,演示了如何用名为 class 的属性和值 “example” 标记一个 div 元素:
<div class="example">...</div>
属性只能在起始标签中指定,绝对不能用在结束标签中。
HTML5 属性不区分大小写,可以全部大写或者混合使用,尽管最常见的约定是始终使用小写。
标准属性
下面列出的属性几乎所有的 HTML5 标签都支持。
自定义属性
HTML5 还引入了一个新特性,就是可以添加自定义的数据属性。
自定义数据属性以 data- 开头,基于我们的需求命名。下面是一个简单的例子:
<div class="example" data-subject="physics" data-level="complex">
...
</div>
上面的例子中两个叫做 data-subject 和 data-level 的自定义属性在 HTML5 中是完全有效的。我们还可以使用 JavaScript API 或者在 CSS 中以获取标准属性类似的方式获取它们的值。
在HTML元素中添加自定义属性,通过JavaScript进行访问,如果你之前有尝试过,你会发现,容易忽略标记验证,而HTML5可以为你提供在有效的网页内创建并使用自己的元素属性的功能。
创建HTML5文件:
如果你还没想好要使用哪一个,可以复制下面的代码:
- <!DOCTYPE html
- >
- <
- html
- >
- <
- head
- >
- <
- script
- >
- /*functions here*/
- </
- script
- >
- </
- head
- >
- <
- body
- >
- </
- body
- >
- </
- html
- >
在body中设置自定义元素,在head部分脚本区域利用JavaScript元素进行访问。
创建元素:
首先,添加一些简单的内容和自定义属性以及ID等元素,以便我们能够识别JavaScript示例。
- <
- div id="product1" data-product-category="clothing"
- >
- Cotton Shirt
- </
- div
- >
正如你所看到的那样,自定义属性的形式为:“data-*”,在“data-”部分设定名称或者你选定的名称。在HTML5中使用自定义属性,这是唯一有效的方法。因此,如果你想验证网页是否有效可才采用这种方法。
当然,项目细节部分决定了自定义属性对你是否有用,以及该将其如何命名。这个示例可适用于不同产品类别的零售网站。
自定义属性允许你以一种特殊的方式利用页面内的JavaScript代码来设置元素,例如,动画显示功能。如果没有标准的HTML元素,我们建议使用自定义属性。
添加测试按钮
在页面上利用自身的JavaScript元素即可执行事件,前提是将下面的代码添加到页面中:
XML/HTML Code复制内容到剪贴板- <
- input type="button" value="get attribute" onclick="getElementAttribute('product1')"
- />
获取属性:
在JavaScript中访问属性最常用的方法是使用“getAttributes”,这也是我们要做的第一步。在页面的head脚本区域添加以下函数:
JavaScript Code复制内容到剪贴板- function getElementAttribute(elemID) {
- var theElement = document.getElementById(elemID);
- var theAttribute = theElement.getAttribute('data-product-category');
- alert(theAttribute);
- }
这里,我们为示例增加了alert 值,当然你也可以根据自身需求在脚本中添加。
获取数据:
你可以使用元素数据集来替代DOM “getAttributes”,这或许更有效,尤其是在某种情况下,代码通过多种属性进行迭代,然而,浏览器对数据集的支持依然非常低,所以牢记这一点,此代码与//后面的方法一样可执行相同的进程。
//var theAttribute = theElement.getAttribute('data-product-category');
var theAttribute = theElement.dataset.productCategory;
从属性名称开始在数据集中删除“data-”,它仍然包含在HTML中。
请注意,如果你的自定义属性名称中有一个连字符,当通过数据访问时这会呈现出camel-case形式,即(“data-product-category” 变成“productCategory”)。
其他模块、函数
我们已经获取该属性,脚本仍然可以设置和删除。下面的代码演示了如何使用标准的JavaScript模块和数据集来设置属性。
JavaScript Code复制内容到剪贴板- //DOM method
- theElement.setAttribute('data-product-category', 'sale');
- //dataset version
- theElement.dataset.productCategory = "sale";
- 你也可以使用DOM方法或者数据集来删除某个属性:
- //DOM method
- theElement.removeAttribute('data-product-category');
- //dataset version
- theElement.dataset.productCategory = null;
在HTML5中实现自定义属性技术上并不是很复杂,真正困难的是选择使用的方法是否适用于你的项目;如果适用,该如何使其更有效?请记住,现在启用数据集方法作为页面功能还为时尚早,毕竟很多浏览器暂不支持此功能。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]