我无法将数据添加到动态添加的元素中:
var newItem = "<li>" + poi.Title + "</li>";
$(newItem).data('poiID', poi.ID);
$(newItem).data('poiTitle', poi.Title);
我试图添加这个:
alert($(newItem).data('poiID'));
在上面一行之后,但我一直“未定义”。
答案 0 :(得分:2)
更改您的代码:
var newItem = $("<li>" + poi.Title + "</li>");
newItem.data('poiID', poi.ID);
newItem.data('poiTitle', poi.Title);
...
alert(newItem.data('poiID'));
答案 1 :(得分: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()
。
答案 2 :(得分:-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。