用jquery实现三级下拉菜单联动时,菜单三无法显示。
JS部分Code:<scripttype="text/javascript"src="http://www.hchouse.net/js/jquery-1.4.2.min...
JS部分Code: <script type="text/javascript" src=" http://www.hchouse.net/js/jquery-1.4.2.min.js"></script><script type="text/javascript">$(document).ready(function(){ $("#sbox").append($("<select id='pard1'></select>")); $("<option value=''>请选择</option>").appendTo($("#pard1")); $.grep(class_array,function(v){ if(v[2]==0) $("<option value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard1")); }); $("#pard1").change(function(){ if($("#pard2").length>0) $("#sbox select[id=pard2]").remove(); $("#sbox").append($("<select id='pard2'></select>")); $("<option value=''>请选择</option>").appendTo($("#pard2")); $.grep(class_array,function(v){ //alert($("#pard1").val()); if(v[2]==$("#pard1").val()) $("<option value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard2")); }); //alert($("#sbox").children().eq(1).attr("id")); }); var dstate=false; $("#pard2").change(function(){ //alert("22"); if($("#pard3").length>0) $("#sbox select[id=pard3]").remove(); dstate=false; $.grep(class_array,function(v){ //alert($("#pard1").val()); if(v[2]==$("#pard2").val()){ //alert($("#pard2").val()); if(dstate==false){ $("#sbox").append($("<select id='pard3'></select>")); $("<option value=''>请选择</option>").appendTo($("#pard3")); dstate=true; } $("<option value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard3")); } }); }); }); </script> HTML部分Code:<html><head><title>诡异的三级联动</title></head><div id="sbox"></div></html>
展开
1个回答
展开全部
class_array是一个二维数组,看你代码的意思。。当第1个下拉菜单
触发change事件时,即
if(v[2]==$("#pard1").val())
$("<option
value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard2"));
这是表示传入的数组v的第三个元素等于第1个下拉菜单的值时,才会将第2个下拉菜单填充。
我看v数组的第三个元素的值有0,1,14,但是又要与第1个下拉菜单的值相等的唯有class_array[0]=new
Array('1','护肤','0');所以,在第1个下拉菜单选择'护肤'才会对第二个下拉菜单有联动效果
触发change事件时,即
if(v[2]==$("#pard1").val())
$("<option
value='"+v[0]+"'>"+v[1]+"</option>").appendTo($("#pard2"));
这是表示传入的数组v的第三个元素等于第1个下拉菜单的值时,才会将第2个下拉菜单填充。
我看v数组的第三个元素的值有0,1,14,但是又要与第1个下拉菜单的值相等的唯有class_array[0]=new
Array('1','护肤','0');所以,在第1个下拉菜单选择'护肤'才会对第二个下拉菜单有联动效果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询