2010-11-24 11 views
4
 $(function(){ 
      var namecounter = 0 
      $("#getitem").click(function(){ 
       namecounter++ 
       var txtval = $("#txt").val(); 
       $('<tr><td><input type="button" name="txt'+ namecounter +'" value="remove" /><input type="text" id="txt'+ namecounter +'a" name="txt'+ namecounter +'a" value="'+txtval+'"/></td><td></td><td></td></tr>').appendTo('#pasok'); 
      }); 
      $(":button[name^='txt']").click(function(){ 
       var currentValue = $(this); 
       var target = $("#" + currentValue.attr("id") + "a"); 
       $(target).remove(); 
      }); 
     }); 

Wie gelöscht erstelltes Element über JQUERY?Wie lösche ich das erstellte Element über JQUERY?

Antwort

2

ändern Ihre Schaltfläche kein id Attribut hat, hat es eine name Attribut (beide sind auch eine direkt zugängliche DOM-Eigenschaften), so können Sie dies tun:

$(function(){ 
    var namecounter = 0 
    $("#getitem").click(function(){ 
     namecounter++ 
     var txtval = $("#txt").val(); 
     $('<tr><td><input type="button" name="txt'+ namecounter +'" value="remove" /><input type="text" id="txt'+ namecounter +'a" name="txt'+ namecounter +'a" value="'+txtval+'"/></td><td></td><td></td></tr>').appendTo('#pasok'); 
    }); 
    $("#pasok").delegate(":button[name^='txt']", "click", function(){ 
     $("#" + this.name + "a").remove(); 
    }); 
}); 

You can test it out here.

Beachten Sie auch die Verwendung von .delegate() so funktioniert es auf die Schaltflächen, die Sie hinzufügen, nicht nur diejenigen, die dort waren, wenn Ihre document.ready-Funktion lief.

+0

Sie brauchen wahrscheinlich ein Leerzeichen vor dem 'a'. '" a "' → '" a "' –

+0

@Mathias - Es ist ein Teil des '' Name'', kein Sub-Selector '' im Inneren zu finden ... –

+0

D'oh, du hast Recht. Was zum Teufel. –

Verwandte Themen