我正在使用以下代码从下拉菜单选项中删除以“ +”字符开头的文本:

 $("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>





为了限制脚本对您要更改的选择的影响并保护所有其他选择,我还在图片中添加了“汽车”类。也许遵循这些思路对您的项目有帮助?

但这不会解决您当前的问题,因为一旦选择了选择选项,您便会离开当前页面。我怀疑还必须有另一个(尚未发布的)脚本负责该行为。

07-24 09:47
查看更多