ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[三级联动sql文件](https://files-cdn.cnblogs.com/files/zxj95121/%E7%9C%81%E5%B8%82%E5%8E%BFsql.zip) 本文实现三级联动的逻辑为: 1.首先根据id搜索所有的省; 2.根据省id变化查找到相应的城市pid,选择所有的城市。 3.再根据城市id变化查找到相应的乡pid,选择所有的乡。 - 当选择器发生变化时使用`$("select change(function(){})")`进行操作。 - 每次province发生变化,需要把city和contry选择器的所有内容清空后再把新的内容添加进去。使用`$("select").prop("length",1)`进行长度控制。city发生变化也需要进行处理。 - 使用`$.each(list,function(i,e){})`对请求返回数据进行遍历。 - 使用`append`把数据添加到相应的`option`标签中 >实现具体代码: ``` <body> <select name="province" id="province"> <option id='0'>--请选择省--</option> <c:forEach items="${provinceList }" var="province"> <option class="province" id="${province.id }"> ${province.name }</option> </c:forEach> </select> <select name="city" id="city"> <option id='00'>--请选择市--</option> </select> <select name="country" id="country"> <option id='000'>--请选择乡--</option> </select> <script src="${Path}/static/js/jquery-1.9.1.min.js"></script> <script> $(function() { $("#province").change( function() { var id = $("#province option:selected").prop("id") $("#city").prop("length", 1); $("#country").prop("length", 1); if (id != "0") { var url = "${Path}/getAreaByPid"; var data = { "pid" : id } $.get(url, data, function(e) { var areaList = e.data.list $.each(areaList, function(i, e) { $("#city").append( "<option id="+e.id+" class='city'>" + e.name + "</option>") }) }) } }) }) $(function() { $("#city").change( function() { var id = $("#city option:selected").prop("id") $("#country").prop("length", 1); if (id != "00") { var url = "${Path}/getAreaByPid"; var data = { "pid" : id } $.get(url, data, function(e) { var areaList = e.data.list $.each(areaList, function(i, e) { $("#country").append( "<option id="+e.id+" class='country'>" + e.name + "</option>") }) }) } }) }) </script> </body> ```