用jquery实现三级下拉菜单联动时,菜单三无法显示。

兄弟姐妹帮我说下,用jquery实现三级下拉菜单联动时,菜单三无法显示。?

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>
最新回答
小草泠泠

2024-10-31 08:05:56

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个下拉菜单选择'护肤'才会对第二个下拉菜单有联动效果