2016-10-22 6 views
0

jqueryでキャッシングを使用していますか、またはdata関数をjqueryで使用しています。動的リストを生成するだけでなく、dataにプロパティを追加していますが、データ関数にプロパティを追加する際にエラーが発生します。エラーst.dataがjqueryの関数ではないのはなぜですか?

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')) 
} 
}) 
+0

jQueryオブジェクト '$(st).data( 'o'、item.o)'を使用する必要があります。 – ainasiart

答えて

2

stはjQueryオブジェクトが、HTML文字列ではありませんので、あなたはこのエラーを取得しています。

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

Corrected JS Fiddle:あなたはこれにstを定義する行を変更します。

関連する問題