JQUERY,我需要更换一些东西

时间:2014-09-14 13:28:40

标签: jquery regex replace

我需要通过单击复选框从我添加的类型列表中替换'/',第一个添加时没有'/',所以当我取消选中它们时替换它只是第一个不能被替换因为它前面没有'/'。那么如何才能进行更换操作,以便更换第一个! JSFiddle

$("input[type=checkbox]").click(function(){
  var spacer
  if(!$("#genre").val()){
    spacer = "";
  } else {
    spacer = " / ";
  }
  if($(this).is(':checked')){
    $("#genre").val($("#genre").val() + spacer + $(this).val());
  } else {
    $("#genre").val($("#genre").val().replace(' / ' + $(this).val(),""));
  }
});

1 个答案:

答案 0 :(得分:2)

希望这会有用。添加顺序不会保留。

$("input[type=checkbox]").click(function () {
    var checkList = [];
    $("#genreslist").find("input").each(function () {
        if (this.checked) checkList.push(this.value);
    });
    $("#genre").val(checkList.join("/"));
});

小提琴:here

要保留订单,您可以这样做:

$("input[type=checkbox]").click(function(){
  var spacer = "";
    var value = $("#genre").val();
  if($("#genre").val()){
    spacer = " / ";
  }
  if($(this).is(':checked')){
    $("#genre").val(value + spacer + $(this).val());
  } else {
      var endSpacer = "";
      if(value.indexOf($(this).val()) == 0)
      {
          spacer="";
          endSpacer = value.length > $(this).val().length ? " / " : "";
      }
      $("#genre").val($("#genre").val().replace(spacer + $(this).val() + endSpacer,""));
  }
});

小提琴:here