JQuery属性为小写

时间:2012-07-21 07:28:12

标签: javascript jquery string attr

我很难过为什么我会收到这个错误。我确信这很简单,我很遗憾:

我的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     

非常感谢任何帮助!

3 个答案:

答案 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'])