2012-07-21 30 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');