オブジェクトのjQuery配列のループに基づいて複数の子を作成する<select>
フォーム要素があります。<option>
に関連付けられた各jQueryをそれ自体に保存したい<option>
の<option>
ですが、プロパティとして推測します。そのため、変更イベントが発生すると、元の jQuery オブジェクトを引き出すことができます<option>
。
attr を使用してオブジェクトを JSON にシリアル化するだけで設定できると思いましたが、機能しません。何か案は?
ここにいくつかのコードがあります:
// creating the select: (data is a jquery array of objects)
$(data).each(function() {
var opt = $('<option></option>').val(this[id_property]).html(this[label_property]);
// preserve the original jquery object on this <option> element:
opt.attr('json', JSON.stringify(this));
$(select).append(opt);
});
// bind the onchange event, and try to recreate that original jquery object
$(select).bind('change', function(event) {
// this gives me a ref to the <option> element:
var val = $(select).find(":selected");
// now how to get the original jquery object?
var item = $(val).attr('json');
});
var item を元の jquery オブジェクトに設定する最後の行が必要です。または、何らかの形で再作成します。eval()
JSON形式であるため、アイテムを渡してみましたが、エラーがスローされます。