为什么错误st.data不是jquery中的函数

why error st.data is not a function in jquery?

本文关键字:函数 jquery 不是 错误 st data 为什么      更新时间:2023-09-26

我正在使用jquery缓存或在jquery中使用data函数。我正在生成动态列表以及在data中添加属性,但我在添加数据函数中的属性时遇到错误。

https://jsfiddle.net/pn9p3szx/1/

$(function(){
var data =[{name:'test',o:{add:'nnnn'}},{name:'test2',o:{add:'nnnn'}},];
var arr=[];
var str ='<ul>';
arr.push(str)
$( data).each(function( index ,item) {
var st ='<li>'+item.name+'</li>';
st.data('o',item.o)
arr.push(st)
});
var s ='</ul>';
arr.push(s)
$('#test').append(arr)
$('#test').on('click', 'li', clickHand);
function clickHand(){
alert('---'+$(this).data('o'))
}
})

你得到这个错误,因为st不是一个jQuery对象,而是一个HTML字符串。将您定义st的行更改为:

var st =$('<li>'+item.name+'</li>');

改正JS提琴