我正在尝试在 jQuery 中设置一个变量。该值应该在按钮的单击事件上设置。 onclick 事件触发,但 x10Device 变量仍然存在undefined
.
我使用的是jquery 1.7.1。
jQuery:
$x10Device = $(this).data("X10");
HTML:
<button class="toggleStatus" data-X10="C5">
我看不出出了什么问题。
jQuery 的data()
方法将使您能够访问data-*
属性,但是,它破坏了属性名称的大小写。您可以使用这个:
$('#myButton').data("x10") // note the lower case
或者,您可以使用attr()
方法,保留您的情况:
$('#myButton').attr("data-X10")
在这里尝试两种方法:http://jsfiddle.net/q5rbL/ http://jsfiddle.net/q5rbL/
请注意,这些方法并不完全等效。如果你愿意change the data-*
元素的属性,您应该使用attr()
. data()
最初会读取该值一次,然后继续返回缓存的副本,而attr()
每次都会重新读取该属性。
请注意,jQuery 还会将属性名称中的连字符转换为驼峰式大小写 (source http://xenforo.com/community/threads/html-5-data-attributes-and-case-sensitivity.15609/- IE。data-some-data == $(ele).data('someData')
)。这两种转换都符合 HTML 规范,该规范规定自定义数据属性不应包含大写字母,并且连字符在dataset
财产 (source http://www.w3.org/html/wg/drafts/html/master/dom.html#custom-data-attribute)。 jQuery 的data
方法只是模仿/符合这个标准行为。
文档
-
data
- http://api.jquery.com/data/ http://api.jquery.com/data/
-
attr
- http://api.jquery.com/attr/ http://api.jquery.com/attr/
- HTML 语义和结构、自定义数据属性 -http://www.w3.org/html/wg/drafts/html/master/dom.html#custom-data-attribute http://www.w3.org/html/wg/drafts/html/master/dom.html#custom-data-attribute
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)