[英]HTML5 & JQuery - Not able to retrieve data from Data-* attribute
我正在学习HTML5和JQuery中Data- *属性的使用,这是关于如何简单地从div检索数据的。
这是我的标记:
<!DOCTYPE html>
<html >
<head>
<title></title>
</head>
<body>
<script type="text/javascript" src="../Scripts/jquery-1.4.1.js"></script>
<script type="text/javascript">
$(function () {
$('#restoreButton').click(function () {
var sources$ = $('div').data('module');
});
});
</script>
<div data-module="Sources" data-module-id="sourcePane">
<button type="button" class="green90x24" id="restoreButton">Restore</button>
</div>
</body>
</html>
它说变量sources $是Undefined
。
我正在使用JQuery的简单data()函数,但是不起作用。 我已经看到这是基本功能之一。
任何建议都会有帮助
请检查您的jQuery版本。
或检查开发人员工具中的日志(Windows中为Ctrl + Shift + I,在Mac中为Command + Option + I)。
您可以使用
console.log(sources$);
可能需要更新您的jquery版本,但也可以尝试:
$('div').data('module-id');
数据方法将获取属性,并期望在data-
后输入密钥
在何处使用此变量sources $?
您应该在click事件处理程序中使用此变量。
或者,您应该将变量定义为全局变量。
利用jQuery 1.11.0
,原始文章中的现有文章似乎可以正常工作
HTML
<div data-module="Sources" data-module-id="sourcePane">
<button type="button" class="green90x24" id="restoreButton">Restore</button>
</div>
JS
$(function () {
$('#restoreButton').click(function () {
var sources$ = $('div').data('module');
$("body").append(sources$)
});
});
您的代码有效,但是您可能无法正确加载jQuery。 检查您的jQuery脚本的源URL,并确保已加载。 如果变量sources$
在末尾添加$
符号也是有原因的吗? 这很罕见。
它说变量sources $是Undefined。
无论怎么说,它绝对意味着您正在尝试从其范围之外访问source $。 您不能在定义为点击回调的匿名函数之外访问它。
jQuery 1.4.1中的.data
方法不能与HTML数据属性一起使用。 您需要jQuery 1.4.3 (最低)。
您正在使用的示例页面http://bibeault.org/jqia2/chapter3/lab.move.and.copy.html没有使用.data
方法来检索data-module
的值。
如果检查源代码,则还有另一个外部脚本jqia2.support.js ,它使用.attr
方法(这是在jQuery 1.4.1中使用HTML数据属性的解决方法)来检索data-module
的值。 参见第50和55行:
$(this).attr('data-module')
这是一个小提琴: http : //jsfiddle.net/3dP6A/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.