我正在编写以下代码。我想仅显示取决于第一个选定值的选项元素。因为这段代码在 chrome 中可以正常工作,但在 safari 中却不能。
hide()
和 show()
函数不起作用。我如何改进这段代码,以便它也能在 Safari 中工作?
我的html代码如下:
<body>
<select id="shopcategory">
<option></option>
<option value="american" selected="selected">american</option>
<option value="indian">indian</option>
<option value="chinese">chinese</option>
</select>
<select id="shop-ar">
<option class="american">1</option>
<option class="american">2</option>
<option class="american">3</option>
<option class="indian">4</option>
<option class="indian">5</option>
<option class="indian">6</option>
<option class="chinese">7</option>
<option class="chinese">8</option>
<option class="chinese">9</option>
</select>
我的jquery代码如下:
$(document).ready(function(){
$("#shopcategory").change(function(){
select= $("#shopcategory option:selected").attr("value");
$("#shop-ar").children().each(function(){
if($(this).attr("class")== select){
// only selected category options must be displayed
$(this).show();
}
else{
$(this).hide();
}
})
})
})
最佳答案
$(document).ready(function(){
$("#shopcategory").change(function(){
var select = $("#shopcategory option:selected").attr("value");
// alert(select);
$("#shop-ar").children().each(function(){
//$(".american").hide();
// alert($(this).attr("id"));
if($(this).attr("class") == select){
$(this).append();
}
else{
$(this).detach();
}
});
});
});
您可以在 .show() 和 .hide() 函数的位置使用 .append() 和 .detach() 函数,因为它们在 safari 和其他浏览器中可以更好地工作。
关于javascript - jquery 函数在 safari 中无法工作,但在其他浏览器中可以正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47314873/