0

動的に追加された要素にデータを追加できません:

var newItem = "<li>" + poi.Title + "</li>";
$(newItem).data('poiID', poi.ID);
$(newItem).data('poiTitle', poi.Title);

私はこれを追加しようとしました:

alert($(newItem).data('poiID'));

上記の行の直後ですが、「未定義」になり続けています。

4

3 に答える 3

2

コードを次のように変更します。

var newItem = $("<li>" + poi.Title + "</li>");
newItem.data('poiID', poi.ID);
newItem.data('poiTitle', poi.Title);

...

alert(newItem.data('poiID'));

フィドルの例: http://jsfiddle.net/P4HWb/

于 2012-09-13T15:45:54.077 に答える
1

これは、毎回$(newItem)新しい要素を作成していて、実際にはその要素への参照を保存していないためです。

試す:

var newItem = $("<li>" + poi.Title + "</li>");  /* create element as newItem */
newItem.data('poiID', poi.ID);                  /* add data to existing elem */
alert(newItem.data('poiID'));                   /* peek at your data */

この時点では、新しい要素はまだ DOM にアタッチされていないことに注意してください。ページに表示するには、、 などnewItemのメソッドを使用して添付する必要があります。append()prepend()

于 2012-09-13T15:44:39.693 に答える
-1

あなたnewItemはまだDOMにありません。それを追加.data()すると、それに追加できます。

または、このようなこともできます。

var newItem = $("<li>" + poi.Title + "</li>");
$(newItem).data('poi', poi); //That way the whole object is added to the element.

次に、DOM に追加します。

于 2012-09-13T15:44:13.683 に答える