2016-04-09 20 views
1
<head> 
    <script> 
     function call() { 
      var id = $(this).data("id"); 
      alert(id); 
     } 
    </script> 
</head> 

<body> 
    <div data-id="5" onclick="call();"></div> 
</body> 

これは<script>タグ間のJavaScript関数です。 をundefinedと表示したとき。なぜ$(this)が機能しないのですか?

+0

理由だけではなく、代わりに 'コール()'関数の内部IDを渡しませんか?コードを複雑にする必要はありませんか? –

+0

'this'は' window'コンテキストを指します – VenomVendor

答えて

5

次のように、call()のパラメータとして要素を渡す必要があります。

<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
     function call(elm) { 
 
      var id = $(elm).data("id"); 
 
      alert(id); 
 
     } 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <div data-id="5" onclick="call(this);">Click Here</div> 
 
</body>

+0

なぜ私のコンピュータで動作しないのですか? –

+0

それは動作するはずです。私はあなたがjQueryのリファレンスを見逃したと思います。 @jjkk – Azim

+0

大丈夫でした。ありがとう –