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

あなたは何かが欠けているでしょう、これは完全に機能するコードであることを確認してください

<!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

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>
于 2012-07-21T07:30:53.727 に答える