从输入中删除“某些”特定文本?

时间:2012-04-01 19:08:24

标签: jquery input indexof

我有几个按钮,每个按钮被分配一个带有数字的类。单击每个按钮时,数字将在输入中提交。如果我双击该按钮,我希望从输入中删除该数字/值,但只删除该数字

以下是我的示例:http://jsfiddle.net/HC5W7/

这是我的代码:

$("div").live('click',function() {
  var a = $('input').val();
  var b = $(this).attr('class')
  var c;
  if ( $("input").val().indexOf(b) !== -1  ) {
    // the code to delete the specific number           
    return false
  }

  if ($("input").val().length > 0) {c = ","}else{ c = ""}

  $('input').val(a + c + b);

});​

2 个答案:

答案 0 :(得分:1)

使用正则表达式进行简单替换应该可以解决问题:

$("div").live('click',function() {
  var a = $('input').val();
  var b = $(this).attr('class')
  var c;
  if ( $("input").val().indexOf(b) !== -1  ) {
      $("input").val($("input").val().replace(new RegExp(b+",?|,?"+b, ""),""));
           return false;
  }

  if ($("input").val().length > 0) {c = ","}else{ c = ""}

  $('input').val(a + c + b);

});​

编辑:链接到JSFiddle Fork:http://jsfiddle.net/g6Hn7/

答案 1 :(得分:1)

如果将给定列表视为数组而不是字符串,则会容易得多。只需在逗号上拆分字符串,就可以对其执行标准数组操作,以添加/删除元素like so