我有一个未编号的列表,其中每个列表项都被赋予一个数据id,我需要这个ID值来更新后面的视图,基本上我不能从json中删除值,有没有办法隐藏html中的值没有从json数据中删除它?和click.log点击?对象是: " level_0_id":1, " level_1_id":1, " level_2_id":1, " id":1
以下是小提琴的代码:https://jsfiddle.net/creativestudio/m4t8tszk/1/
这是Js:
function list(object) {
var json="<ul class='dropdown'>";
for(prop in object){
var value = object[prop];
switch (typeof(value)){
case "object":
var token = Math.random().toString(36).substr(2,16);
json += "<li><div id='"+ token +"' class='collapse'>"+list(value)+"</div></li>";
break;
default:
json += "<li>"+value+"</li>";
}
}
return json+"</ul>";
}
$(document).ready(function() {
console.log(data);
$('#sidebar').html(list(data));
});
答案 0 :(得分:0)
尝试
$(document).ready(function() {
var filter = ["12345", "2451", "3333"];
var result = $(list(data)).map(function(i, el) {
var res = $("li", el).filter(function(idx, elem) {
return $.inArray(elem.textContent, filter) !== -1
}).fadeTo(0,0, function() {
var el = this;
$(":contains(Americas)")
.on("click", function() {
console.log(el.textContent)
})
})
return el
})
$("#output").html(result);
});
jsfiddle https://jsfiddle.net/m4t8tszk/4/
答案 1 :(得分:0)
JSON是一种组织信息的特定方式。所以调用你的html字符串&#34; json&#34;并不准确。我将其更改为&#34; listView&#34;什么的。
您始终可以使用JQuery。只需将一个类(如hide)添加到您想要做的任何事情中。
$(".hide").click(function(event) {
var clickedThing = event.currentTarget // Also could use the keyword "this"
var clickedThing.hide();
});
我建议有一个隐藏的和可见的类。如果单击一个,让JQuery将其切换到另一个。