[问题] select option决定下一个select

楼主: sinlin (豆浆)   2021-07-07 11:48:37
请问一下
我现在有两个select选项
第一个select有a,b,c三项
第二个select有1,2,3,4,5,6六项
我想要在选择a时,只出现1,2两项选择
选择b时,只出现3,4两项
选择c时,只出现5,6两项
目前在网络上找了一些方法
用jquery处理data-parent跟child的部分,但不知道为什么都无法工作
将网页简化之后剩下底下内容,可以帮忙看一下哪里出了错吗?
<html lang="zh_TW" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery-3.6.0.js"></script>
<script>
$(document).ready(function(){
$('#route').change(function() {
var parent = $(this).val();
$('#branch').children().each(function() {
if($(this).data('parent') != parent) {
$(this).hide();
} else $(this).show();
});
});
});
</script>
</head>
<body>
<select id="route">
<option value="a" selected="selected">A</option>
<option value="b">B</option>
<option value="c">C</option>
</select><br />
<select id="branch">
<option data-parent="a" value="1" selected="selected">1</option>
<option data-parent="a" value="2" >2</option>
<option data-parent="b" value="3" >3</option>
<option data-parent="b" value="4" >4</option>
<option data-parent="c" value="5" >5</option>
<option data-parent="c" value="6" >6</option>
</select><br />
</body>
</html>
作者: nick8195 (煎饼)   2021-07-07 13:43:00
或许是因为不同浏览器对于option display:none处理不同?可以试试每次都将#branch.empty() 并重新append新的选项
作者: rahit (水元素)   2021-07-07 16:35:00
.each不要用有的浏览器不支援如果有错误讯息麻烦贴一下比较好判读
作者: Rplus (R+) (9527)   2021-07-07 22:29:00
直接写个 fn 来更新 2nd select options 就好https://jsbin.com/fifebusico/edit?html,js,output
作者: rahit (水元素)   2021-07-08 13:29:00
有可能你jquery位址指错
作者: chen5252 (锋炮炸裂)   2021-07-14 23:29:00
本机有确认正常加载jq吗?有的话再从CDN下载一份盖掉原本的,清掉cache之后再试一次?

Links booklink

Contact Us: admin [ a t ] ucptt.com