JS:“data-background-color”和.data(“background-color”)之间的关系
JS: relation between "data-background-color" and .data("background-color")
我目前正在阅读 在 Rails 中使用 Javascript 指南。这条线之间的关系
backgroundColor = $(this).data("background-color")
那个让我感到困惑:
<a href="#" data-background-color="#990000">Paint it red</a>
据我了解,它设置了"这个"的 bg 颜色。函数从哪里获取数据的值("背景色")?
我的猜测是"背景颜色"之前的"data-"允许函数访问HTML中的值?
我很感激你解释这种关系并指出我的更多信息。
以下是完整的 JS/coffeescipt 代码:
paintIt = (element, backgroundColor, textColor) ->
element.style.backgroundColor = backgroundColor
if textColor?
element.style.color = textColor
$ ->
$("a[data-background-color]").click (e) ->
e.preventDefault()
backgroundColor = $(this).data("background-color")
textColor = $(this).data("text-color")
paintIt(this, backgroundColor, textColor)
完整的 HTML:
<a href="#" data-background-color="#990000">Paint it red</a>
<a href="#" data-background-color="#009900" data-text-color="#FFFFFF">Paint it green</a>
<a href="#" data-background-color="#000099" data-text-color="#FFFFFF">Paint it blue</a>
在我看来
,你基本上是对的。用例中的 jQuery .data(key) 方法允许检索它所应用的 dom 元素的相应 data-
属性。
例如,$(this).data('background-color')
将检索 dom 元素引用的 data-background-color
属性 this
。
因此,第二种方法执行以下操作:每当单击具有data-background-color
属性的锚点 (a
) 元素时,其背景和字体颜色将分别设置为其data-background-color
和data-text-color
属性的值。
您在
文档中使用的 HTML5 自定义数据属性,但仍具有有效的标记。浏览器将数据理解为自定义属性。
而自定义数据属性临时存储该值。你称它为它,这引用了对象 a 当你 单击一个它将相应地设置颜色。
相关文章:
- JSDoc:模块和名称空间之间的关系是什么
- html5视频播放器和视频js之间的关系
- 两个集合mongodb之间的关系
- angular2@组件和类之间的关系
- 在Knockout.js模型中创建项之间的关系
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 视图和路由器之间的主干关系
- JavaScriptV5中的绑定和JQuery之间有任何关系吗
- 高图 - 分组/近似后保持多个系列之间的关系
- 父关系指令和子关系指令之间的绑定
- 绘制的节点和Google图表/可视化中的数据节点之间的关系
- 如何解决存储中操作之间的依赖关系
- 负载角度依赖关系之间的区别是什么,共享模块的最佳方式是什么
- 如何管理原始对象之间的数据依赖关系
- undercore.js-包含和减少之间的关系
- 如何在不让web组件的原型进入全局命名空间的情况下维护它们之间的依赖关系
- 具有表之间关系的AngularJS资源
- 在js中维护元素组之间关系的最佳实践
- 描述JavaScript中成员和容器之间关系的最佳术语
- 在reactjs中给出babel和node.js之间关系的细节