1

jQuery を使用して HTML5 data-* 値を追加しようとしていますが、何も起こっていないようです。何か問題がありますか?

ここに私のHTMLがあります:

<a href="#" data-js="click-chat"></a>

jQuery:

$('[data-js=click-chat]').click(function(){
    $(this).data("role",'test')
})

何らかの理由で、データを設定していないか、既存の値を更新していません。

4

4 に答える 4

1

.attr()要素に属性を追加する場合は、このメソッドを使用できます。それ以外の場合、他のすべての回答はどのように機能するかについて正しいdata()です。

 $('a[data-js="click-chat"').attr('data-monkey', "lemur");
于 2013-04-23T12:20:00.073 に答える
1

関数を使用すると、.data()jQuery は値を要素の実際の属性として保存しないため、DOM への変更は表示されません。最初に呼び出す.data()と、要素の属性の現在の値がdata-*内部に保存され、その保存を使用して後続の呼び出しの値が取得または設定されます。

.attr('data-*')これは、要素で定義された実際の属性で機能するため、使用とは一貫していないため、どちらかを使用する必要があります。

于 2013-04-23T12:20:25.373 に答える
1

を使用.data()しても属性は作成されず、要素にデータが追加されるだけです。を使用して使用できるはず.data('role')ですが、html には属性が表示されません。

したがって.data()、セレクターを呼び出すと、data-属性をチェックするだけでなく、属性フォームに存在しないデータをチェックします。

于 2013-04-23T12:19:32.780 に答える
1

このように .attr プロパティを使用できます

$(this).attr('id', 'your-id-value');
于 2013-04-23T12:21:26.077 に答える