使用jQuery替换不会更改Var

时间:2016-12-30 05:44:26

标签: javascript jquery

我想在单击div时从存储的var中删除文本。我的代码看起来像这样:

$(document).ready(function() {

 var allids = '';

  $("#artistselect").change(function() {

  var id = $(this).children(":selected").attr("id");
  allids.push($(this).children(":selected").attr("value"));

  selectid = "#" + id; 
  echoid = "#artistecho" + id; 

  $(echoid).show(300); 
  $(selectid).hide(0);
  $("input[name=artistslist]").val(allids.join(", "));

  alert(allids);

  });

    $(".remove").click(function() {

    var removeid = $(this).attr("value");

    var allids = allids.replace(removeid, '');

     $('input[name=artistslist]').val(function(index, value) {
       return value.replace(removeid, '');
    });



    alert(allids);
    });
  }); 

此功能正常运行:

$("#artistselect").change(function() {

我有这个功能的问题:

$(".remove").click(function() {

它不会修改var allids,也不会给我警报(allid);

提前致谢。

2 个答案:

答案 0 :(得分:0)

allid必须是数组,并且不应该使用$(" .remove")中的var再次对其进行解码。单击(function(){

    $(document).ready(function() {

     var allids = [];

      $("#artistselect").change(function() {

      var id = $(this).children(":selected").attr("id");
      allids.push($(this).children(":selected").attr("value"));

      selectid = "#" + id; 
      echoid = "#artistecho" + id; 

      $(echoid).show(300); 
      $(selectid).hide(0);
      $("input[name=artistslist]").val(allids.join(", "));

      alert(allids);

      });

        $(".remove").click(function() {

        var removeid = $(this).attr("value");

        allids = allids.replace(removeid, '');

         $('input[name=artistslist]').val(function(index, value) {
           return value.replace(removeid, '');
        });



        alert(newids);
        });
      }); 

答案 1 :(得分:0)

您应将 allids 定义为数组选择& echoid 变量。这是代码。

uint_fast32_t