4

配列から特定の値を削除したい。私は次のようなコードを書きました:

   $(".remove", document.getElementById("TXT")).live("click", function () {      
          $(this).parent().remove();
          var removeitem = $(this).parent().attr('id');                         
          pushvar.splice($.inArray(removeitem, pushvar), 1);

      });

上記のコードpushvarは配列です。3 つの要素が含まれているとします。削除ボタンの 1 つをクリックすると、関数が 3 回繰り返されます。たとえば、には要素がpushvar含まれています。[5,6,7]6の削除ボタンをクリックすると、機能が3回繰り返されます。しかし

 pushvar.splice($.inArray(removeitem, pushvar), 1);

3 つの要素をすべて削除します。しかし、クラスの削除をクリックすると、配列から6つだけ削除したいと思います。これどうやってするの。

4

5 に答える 5

1

このようにしてみてください

pushvar = [5,6,7];

$('.remove').on("click", function () {    
      var removeitem = $(this).attr('id');  
      pushvar.splice($.inArray(parseInt(removeitem), pushvar), 1);
      document.write(pushvar);
      return false;
  });

デモを見る

于 2013-03-04T14:28:29.957 に答える
1

これを試して:

$(".remove", document.getElementById("TXT")).live("click", function () {
    $(this).parent().remove();
    var removeitem = $(this).parent().attr('id');

    if ($.inArray(removeitem, pushvar) > 0) pushvar.splice($.inArray(removeitem, pushvar), 1);
});
于 2013-03-04T14:20:39.873 に答える
1

あなたはこのようなことをすることができます:

var myArray = [10, 20, 30, 40, 50];
var removeThis = 30;

myArray = jQuery.grep(myArray, function(data){
return data != removeThis;
});
于 2013-03-04T14:10:37.353 に答える
1

live() 非推奨です

jQueryversion 非推奨: 1.7、削除: 1.9

だから使うon

 $(".remove,#TXT").on("click", function () {      
      var removeitem = $(this).parent().attr('id');  //get parent id                        
      $(this).parent().remove(); //remove later
      pushvar.splice($.inArray(removeitem, pushvar), 1);

  });

セレクターが動的に追加される場合は、on デリゲートを使用します

  $(document).on("click", ".remove,#TXT",  function () {  
于 2013-03-04T14:12:19.867 に答える
1

私はこのようなことをします:

$("#TXT").on("click", ".remove", function () {      
    var removeitem = $(this).parent().remove().attr('id');     
    pushvar.splice($.inArray(removeitem, pushvar)-1, 1);
});

それは私にとってはうまくいくようです-> FIDDLE、しかしHTMLがなければ、多くの推測がありますか?

于 2013-03-04T14:16:05.980 に答える