2012-07-21 50 views
0

我很难过,为什么我得到这个错误。我敢肯定,这是一些简单的我失踪:JQuery属性为小写

我有一个自定义属性HTML5元素:< DIV数据-ID =“someValue中”>

var dataId = $(this).attr('data-id'); 

alert(typeof dataId); // returns 'string' 

alert(dataId.toLowerCase()); // TypeError: 'undefined' is not an object  

任何帮助将不胜感激!

+0

跟踪jquery插件'trace'? – 2012-07-21 07:34:16

+0

是的,这只是一个写入控制台的函数。我已经更新了代码,使其更清晰一些。 – JCraine 2012-07-21 07:46:29

+0

你确定'$(this)'实际上是指有问题的'div'吗? – JustinStolle 2012-07-21 08:01:17

回答

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> 
+0

在html5中,您可以使用前缀“data-”来设置自己的任意属性。 'data-id'是我自己的一个属性。 – JCraine 2012-07-21 07:32:33

+0

但似乎你还没有设置它。 – 2012-07-21 07:40:03

+0

我已更新代码以更清晰 – JCraine 2012-07-21 07:46:49

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> 

0

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

$(this).data('id');