私はjquery 1.5とhtml4標準を使用しています。
JavaScript変数で取得するカスタム属性を設定しようとしていますが、up.codeサンプルを設定していません。
var attname="list1"; // this is changed on every call of the function where it is defined.
var attvalue="b,c,d"; // this also changed.
jQuery('#div1').attr({attname:attvalue});
しかし、それはattnameを変数そのものではなく文字列として扱います。 data()、prop()を使用するような他のオプションがありますが、それらはHTML5とjquery 1.6で現在サポートされていません。他の問題は、サーバー側でデータを同期して使用するように設定できないことですjquery data()によるクライアント側。構文的に異なるためです。他の方法がある場合は、ありがとうを提案してください。
あなたはこれを使うべきだと思います
jQuery('#div').attr(attname,attvalue);
はい、ただし衝突を避けるために前にdata-
接頭辞を使用してください
$('Elm').attr('data-'+attname,attvalue);
data-
接頭辞の使用には、HTML5は必要ありません。
はい、必要な属性を追加できます。注意してください。
$('#foobar').attr('foo','bar');
http://jsfiddle.net/each/rnnfk/ -このデモを確認してください
<div data-test="lala">asdf</div>
alert($('div').data('test'));
var t = 'data-test2';
var v = 'hiho';
$('div').attr(t,v);
alert($('div').data('test2'));
alert($('div').attr('data-test2'));
これはすべて私にとってうまくいきます: http://jsfiddle.net/r7uQ8/ jquery 1.4.4でテスト済み
角括弧表記はあなたの友達です:
var attname = "haha";
jQuery('#div')[0][attname] = "foo";
alert(jQuery('#div')[0][attname]);