我正在使用以下代码从下拉菜单选项中删除以“ +”字符开头的文本:
$("select").each(function(){
var $wrapper=$(this);
var $options=$wrapper.find("option");
$(this).empty();
$options.each(function(index){
$wrapper.append(new Option($(this).text().split("+")[0]))
})
})
因此,如果菜单的原始选择是:
奥迪
宝马
奔驰+拖车
下拉列表仅显示:
奥迪
宝马
梅赛德斯
问题:
做出选择后,我还有一些下拉菜单需要刷新页面。如果不使用上述代码,则可以正常工作,但是在网页上方添加代码时,重定向到首页。如何确保用户做出下拉选择时用户停留在同一页面上?
最佳答案
遵循“少写,多做”的jQuery精神,您还可以执行以下文本替换操作:
$("select.cars option").each(function(){
with ($(this)) {
text(text().split("+")[0].trim());
val(val().split("+")[0].trim());
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="cars">
<option value="Audi">Audi</option>
<option value="BMW">BMW</option>
<option value="Mercedes + Trailer">Mercedes + Trailer</option>
</select>
为了限制脚本对您要更改的选择的影响并保护所有其他选择,我还在图片中添加了“汽车”类。也许遵循这些思路对您的项目有帮助?
但这不会解决您当前的问题,因为一旦选择了选择选项,您便会离开当前页面。我怀疑还必须有另一个(尚未发布的)脚本负责该行为。