Jquery Can';t set.data()用于元素
我无法向动态添加的元素添加数据:Jquery Can';t set.data()用于元素,jquery,element,Jquery,Element,我无法向动态添加的元素添加数据: var newItem = "<li>" + poi.Title + "</li>"; $(newItem).data('poiID', poi.ID); $(newItem).data('poiTitle', poi.Title); 就在上面一行之后,但我一直得到“undefined”。您的newItem还不在DOM中。附加它,然后可以向其添加.data() 或者你可以这样做 var newItem = $("<li>"
var newItem = "<li>" + poi.Title + "</li>";
$(newItem).data('poiID', poi.ID);
$(newItem).data('poiTitle', poi.Title);
就在上面一行之后,但我一直得到“undefined”。您的
newItem
还不在DOM中。附加它,然后可以向其添加.data()
或者你可以这样做
var newItem = $("<li>" + poi.Title + "</li>");
$(newItem).data('poi', poi); //That way the whole object is added to the element.
var newItem=$(“”+poi.Title+“ ”);
$(newItem).data('poi',poi)//这样,整个对象将添加到元素中。
然后将其附加到DOM。这是因为每次执行
$(newItem)
操作时,您都在创建一个新元素,而实际上并没有存储对它的引用
尝试:
var newItem=$(“”+poi.Title+“ ”);/*将元素创建为newItem*/
newItem.data('poid',poi.ID);/*向现有元素添加数据*/
警报(newItem.data('poid'));/*查看您的数据*/
请注意,此时新元素尚未附加到DOM。要使其显示在页面上,您需要使用诸如
append()
,prepend()
等方法附加newItem
。更改代码如下:
var newItem = $("<li>" + poi.Title + "</li>");
newItem.data('poiID', poi.ID);
newItem.data('poiTitle', poi.Title);
...
alert(newItem.data('poiID'));
var newItem=$(“”+poi.Title+“ ”);
newItem.data('poid',poi.ID);
newItem.data('poi.Title',poi.Title);
...
警报(newItem.data('poid'));
小提琴示例:我尝试了以下方法:var newItem=“
newItem
是一个字符串,所以必须将它重新声明到附加的元素中。var 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 */
var newItem = $("<li>" + poi.Title + "</li>");
newItem.data('poiID', poi.ID);
newItem.data('poiTitle', poi.Title);
...
alert(newItem.data('poiID'));