2015-09-23 108 views
0

我想通过JQuery选择父类别时列出子类别。 在这里,我只收到子类别的最后一个项目,当我点击父类别。如何通过JavaScript从父类别获取每个子类别?

如何获取所有项目都属于该父项?

function update_subscategories_div(parent_id) { 
 
    var result={},objectlength 
 
    jQuery.ajax({ 
 
    url: "/get_subscategories/"+parent_id+".json", 
 
    type: "GET", 
 
    data: {"parent_id" : parent_id}, 
 
    dataType: "html", 
 
    success: function(data) { 
 
     result = JSON.parse(data) 
 
     objectlength =result.length 
 
     for(var i=0; i<objectlength; i++) 
 
     { 
 
     var name = jQuery("#categoriesDiv").html(result[i].name); 
 
     } 
 
     console.log(name); 
 
     console.log(objectlength); 
 
    } 
 
    }); 
 
}

Table

+0

使用这个变量名称=的jQuery( “#categoriesDiv”)HTML(结果[I]。名称)。它会在您的for循环运行时每次替换您的代码。首先,您必须将这些值存储在来自for循环的数组中。然后根据您的要求打印此阵列。 –

+0

@ Deepak saini你能编辑代码吗,我对数组循环没有太多的知识 – SreRoR

+0

你是否需要下拉选项? –

回答

2
jQuery("#categoriesDiv").html(result[i].name); 

用下面的替换它。

jQuery("#categoriesDiv").append('<option>'+result[i].name+'</option>'); 

我觉得categoriesDiv这个ID应该是选择框。 。 例如:

<select id="categoriesDiv"> 
    </select> 

而之前添加此for循环在成功函数的jQuery( “#selectprarentId”)找到( '选项')删除();

然后它会工作。

+0

谢谢迪帕克它为我工作...非常感谢:) – SreRoR

+0

@sreena不客气。 :) –

2

你可以有一个全局的数组,每个子类别添加到阵列中的for循环和返回,在年底。

var subcat = [];//Array of subcategories 
    for (var i = 0; i < objectlength; i++) { 
     subcat.push(result[i].name); 

} 

同样的,现在你可以像上面那样循环子类型数组。

+0

可以请你分享循环数组的代码。 – SreRoR

+0

@sreena检查我的答案我已经更新了数组填充。 – Addy

+0

非常感谢这个代码作品 – SreRoR

2

你的问题是在这里

for(var i=0; i<objectlength; i++) 
{ 
     var name = jQuery("#categoriesDiv").html(result[i].name); 
} 

你重新定义了在每个迭代name值。这就是为什么你会得到你的子类别中的最后一个值。

更改您的代码看起来像

var name = ""; 
var categoriesDiv = jQuery("#categoriesDiv"); 
for(var i=0; i<objectlength; i++){ 
    var currentText = categoriesDiv .html(); 
    var newText = currentText+' '+ result[i].name; 
    categoriesDiv .html(newText); 
    name += ' ' + result[i].name; // this may not be necessary 
} 
console.log(categoryArray); 
console.log(objectlength); 
1
function update_subscategories_div(parent_id) { 
    var result={},objectlength; 
    jQuery.ajax({ 
    url: "/get_subscategories/"+parent_id+".json", 
    type: "GET", 
    data: {"parent_id" : parent_id}, 
    dataType: "html", 
    success: function(data) { 
    jQuery("#categoriesDiv").find('option').remove(); 
     result = JSON.parse(data); 
     objectlength =result.length; 
     for(var i=0; i<objectlength; i++) 
     { 
     jQuery("#categoriesDiv").append('<option>'+result[i].name+'</option>'); 
     } 
     console.log(name); 
     console.log(objectlength); 
    } 
    }); 
} 
+0

感谢朋友,这段代码也适用于我 – SreRoR