我很难过为什么我会收到这个错误。我确信这很简单,我很遗憾:
我的HTML5元素具有自定义属性:< div data-id =“somevalue”>
var dataId = $(this).attr('data-id');
alert(typeof dataId); // returns 'string'
alert(dataId.toLowerCase()); // TypeError: 'undefined' is not an object
非常感谢任何帮助!
答案 0 :(得分:0)
DOM元素没有属性data-id,attr('data-id')返回undefined。
编辑:此代码工作正常:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div data-id="AbA">Test</div>
<script language="javascript" type="text/javascript" >
$(document).ready(function() {
$("div").click(function() {
var dataId = $(this).attr('data-id');
alert(dataId.toLowerCase());
});
});
</script>
</body>
</html>
答案 1 :(得分:0)
你会遗漏一些东西,检查它是完整的工作代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" >
</script>
<script type="text/javascript">
jQuery(function(){
var dataId = $('#two').attr('data-id');
alert(typeof dataId); // returns 'string'
alert(dataId.toLowerCase());
});
</script>
</head>
<body>
<div id="two" data-id="TYTJNFCJF">Content</div>
</body>
答案 2 :(得分:0)
jQuery可以轻松处理数据属性。尝试
(eg. ['n', 's', 'w', 'e'])