0

私はこのhtmlを持っています:

<img src="http://localhost:82/Clone//images/hosts/Kinx_9843a.jpg" data-name="/images/hosts/K_9843a.jpg" alt="">

私はこれを取得しようとしています:

$('body').on('click','.hostPic',function(){ 
    console.log($(this).attr('data-name'));
});

画像が押されるたびに、そのデータ名属性を取得したいのですが、機能しませんundefined。属性を取得しようとすると報告されます。理由は何ですか?

4

4 に答える 4

4

hostPicその画像にクラスを追加します。

さらに、を使用することもできますが.data('name')、実際には違いはありません。古いブラウザでは問題が発生する可能性がありますが.data、私にとっては問題になりませんでした。

于 2012-12-12T14:42:32.440 に答える
1
$('.hostPic').click(function() {
  console.log($(this).data('name'));
}
于 2012-12-12T14:46:59.017 に答える
0

画像のクラスが「hostPic」であることを確認してから、jQueryで次の手順を実行します。-

$('.hostPic').on('click', function() {
  console.log($(this).data('name'));
}
于 2012-12-12T14:46:24.753 に答える
0

次のコードは私のために機能しました、多分あなたはイベントを間違ったオブジェクトに添付しています、あなたはのthis代わりにオブジェクトをデバッグすることによってそれを理解することができますdata-name

また、.data文字列の読み取りのみに使用する場合.attrは、キャッシュとして使用し.data、値を適切なタイプに変換しようとするnumberJSON、より重いプロセスになり.attrます。

<img src="http://localhost:82/Clone//images/hosts/Kinx_9843a.jpg" data-name="/images/hosts/K_9843a.jpg" alt="">​

​$("img")​.click(function () { alert($(this).attr("data-name")); });​
于 2012-12-12T14:59:27.063 に答える