私はgreasemonkeyユーザースクリプトでjqueryを使用しています。配列に基づく選択に多数のオプションを追加し、対応するオブジェクトを次のようにjquery.dataで要素に貼り付けようとしています。
$.each(some_array, function(item){
// These next 2 statements seem awkward to me and I was also hoping
// a jquery master could show me a slicker way to perhaps
// combine them into something simpler
$('select').append('<option>dummy</option>');
$('select option:last-child').data('obj', item);
});
次に、選択時にオブジェクトを元に戻したいと思います。
$('select').change(function(){
var theObj = $('option:selected', this).data('obj');
});
ただし、私のグリースモンキーユーザースクリプトでは、theObjは未定義です。ラッパーやunsafeWindowなどでサルのビジネスが行われていることは知っています。これが機能しない理由を誰かが知っていることを望んでいました。