0

我很困惑为什么我会收到这个错误。我敢肯定这是我缺少的一些简单的东西:

我的具有自定义属性的 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     

任何帮助将不胜感激!

4

3 回答 3

0

DOM 元素没有属性 data-id 并且 attr('data-id') 返回未定义。

编辑:此代码工作正常:

<!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>
于 2012-07-21T07:30:53.727 回答
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>

于 2012-07-21T08:16:33.313 回答
0

jQuery 轻松处理数据属性。尝试

$(this).data('id');
于 2016-04-01T11:29:59.267 回答