2016-10-22 2 views
0

Ich verwende Caching in jquery oder mit data Funktion in jquery .Ich erzeuge dynamische Liste sowie Hinzufügen einer Eigenschaft in data. Aber ich bekomme Fehler beim Hinzufügen der Eigenschaft in Datenfunktion.Warum Fehler st.data ist keine Funktion in 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

müssen Sie jQuery-Objekt '$ (st) .data ('o', item.o)' verwenden – ainasiart

Antwort

2

Sie bekommen diesen Fehler, da st kein Objekt jQuery ist, sondern ein HTML-String. Ändern Sie die Zeile, wo Sie st dazu definieren:

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

Corrected JS Fiddle.