【发布时间】:2020-01-31 05:02:00
【问题描述】:
HTML 和 JS
<div class="form-group form-inline text-center">
<label for="select_category">Select Category</label> 
<select class="custom-select" id="select_category" style="width: 500px;" onchange="listcatcb();">
<option selected></option>
</select>
</div>
<div class="container" id="cats">
<div class="form-check" id="catrbs"> </div>
<button class="btn btn-outline-secondary" onclick="nextcats();">Click Next!</button>
</div>
getallcategory();
function getallcategory() {
var link = 'allcat.json';
$.post(link).done(function (data) {
data2 = JSON.stringify(data);
var obj = jQuery.parseJSON(data2);
for (var i = 0; i < obj.length; i++) {
$("#select_category").append('<option value="' + obj[i].name + '">' + obj[i].name + '</option> ')
}
});
}
function listcatcb() {
selcat = document.getElementById("select_category").value;
var link = 'allcat.json';
$.post(link).done(function (data) {
data2 = JSON.stringify(data);
var obj = jQuery.parseJSON(data2);
for (var i = 0; i < obj.length; i++) {
if (obj[i].name == selcat) {
for (var j = 0; j < obj.length; j++) {
$("#catrbs").append('<input class="form-check-input catcbs" type="checkbox" id="' + obj[i].siblings[
j].name + '" value="' + obj[i].siblings[j].name + '"><label class="form-check-label" for="' +
obj[i].siblings[j].name + '">' +
obj[i].siblings[j].name +
'</label><br/>')
}
}
}
});
}
function nextcats() {
var link = 'allcat.json';
var checkedValue = $('.catcbs:checked').val();;
$.post(link).done(function (data) {
data2 = JSON.stringify(data);
var obj = jQuery.parseJSON(data2);
for (var i = 0; i < obj.length; i++) {
if (obj[i].name == selcat) {
for (var j = 0; j < obj.length; j++) {
if (obj[i].siblings[j].name == checkedValue) {
for (var k = 0; k < obj.length; k++) {
console.log(obj[i].siblings[j].siblings[k].name);
}
}
}
}
}
});
}
allcat.json
[ { "id" : "47"
, "name" : "Women"
, "parent" : "0"
, "status" : "Enabled"
, "itemcount": 44
, "siblings":
[ { "id" : "87"
, "name" : "Personal Care Appliances"
, "parent" : "47"
, "status" : "Enabled"
, "itemcount": 2
, "siblings":
[ { "id" : "88"
, "name" : "Hair Dryers"
, "parent" : "87"
, "status" : "Enabled"
, "itemcount": 2
, "siblings" : []
} ] }
, { "id" : "127"
, "name" : "Jewellary"
, "parent" : "47"
, "status" : "Enabled"
, "itemcount": 41
, "siblings":
[ { "id" : "128"
, "name" : "Artificial Jewellary"
, "parent" : "127"
, "status" : "Enabled"
, "itemcount": 41
, "siblings" : []
} ] } ] } ]
在这段代码中,如果我一次选择 2 个复选框,则意味着我只得到第一个 JSON 值的输出...
如果我取消选中一个,则意味着我正在获取其各自的值...
我的意思是,例如,如果我从一个类别中选择女性,那么我将获得 2 个复选框,分别是 1.personal care Appliance 和 2.jewellery。
如果我一次选择多个复选框意味着我只得到吹风机(个人护理用品中的价值),但我没有得到人造珠宝(珠宝中的价值)
如果我一次选择一个意味着我得到了适当的结果,请帮助我解决这个错误...
我卡在这里了。
【问题讨论】:
-
能否为这个示例创建一个 jsFiddle,以便调试。
-
jsfiddle.net/Manoj07/6frs3n09/10 亲爱的先生,这里是 jsfiddle 链接...在此链接中,我的程序在那里...有很多类别,例如男人,女人,家具,电子产品...在JSON 我只给了女性数组......其中,如果我从选择选项中选择女性,1.个人护理用品和珠宝会显示在复选框中,如果我同时选择(多个)个人护理用品和珠宝,那么它会显示只有第一个数组的(个人护理用品)值(吹风机)。如果我取消选中任何一个并单击按钮意味着我得到了正确的结果。但不是在多个
-
兄弟验证小提琴和分享,它不起作用兄弟
-
是的先生...只有我说...我需要男性、女性、电子产品等的列表,在选择选项中...在那个 Json 中,我只给出了女性 Json 数组...单个选项对我来说也足够了...我将在这里修改代码...如果我选择女性意味着我应该将个人护理用品和珠宝作为复选框..如果我选择多个复选框一次意味着我应该在控制台中获取 Json 数组中的所有值
-
你来自喀拉拉邦吗?请检查答案
标签: javascript jquery html arrays json