我有一个三级层次结构。前两个级别是可折叠的,而最后一个是列表。当我单击列表时,我必须传递有关单击列表项的数据以及其父级及其父级的名称。 我无法获得有关单击项目的数据.js代码(也在代码下方读取)
var commodity;
var variety;
var grade;
var content;
var jsons ='[{"Turmeric":[{"Bulb":["Grade 2","Grade 1"]},{"Finger":["Grade
1"]}]}]';
var data = $.parseJSON(jsons);
var nextId = 0;
$.each(data, function(key, value){
$.each(value, function(key, value){ //Runs for each commodity
commodity = key;
var data1 = value;
$(document).on("pageinit", function() {
nextId++;
content = "<div data-role='collapsible' data-collapsed-icon='arrow-r'
and data-expanded-icon='arrow-d' id='setk'><h3> " + commodity + "</h3><p>";
$.each(data1, function(key, value){
$.each(value, function(key, value){
variety = key;
content = content + "<div data-role='collapsible' data-collapsed-
icon='arrow-r' and data-expanded-icon='arrow-d' id='setk'><h3> " + variety + "</h3>
<p>"+
'<ul data-role="listview" id="noth">';
for(var i=0, len=value.length; i < len; i++){
grade = value[i];
invis = commodity+variety+grade;
content=content+'<li><a href="ext.html" id=commodity
onclick=senddata(?????) rel="external">'+grade+'</a></li>';
}
content = content + '</ul>';
content = content + "</p></div>";
});
});
content = content +"</p></div>";
$("#set").append( content ).collapsibleset('refresh');
$("#set").enhanceWithin();
});
});
});
function senddata(data) {
localStorage["1"] = data;
alert(data);
}
请不要:如果我给onclick方法提供等级或品种或商品的参数,它会发送这些不正确的最新更新值
答案 0 :(得分:0)
有几点可以帮助你:
首先,您显然正在重复使用不需要触摸的变量:
$.each(data, function(key, value){
$.each(value, function(key, value){
内部$ .each()替换键和值中的任何值。
其次,您不需要在循环中绑定pageinit事件;它会多次发射。 pageinit也已弃用。