2010-10-01 9 views
1

Je crée un script jquery qui pourrait créer de nouveaux champs de formulaire, je peux créer eux, mais comment puis-je supprimer les entrées spécifiques (référencé par class = nom de classe « « + count + » inimene _ »)supprimer des entrées spécifiques

<script> 
var count = 0; 
function add(){ 
count ++; 
var code = '<div class="inimene_'+count+'"><p>Eesnimi: <input type="text" id="eesnimi_'+count+'" /></br>Perenimi: <input type="text" id="perenimi_'+count+'" /></br>Pilet: <select><option selected>Vali pileti liik</option><option value="100.00 Kr">Täiskasvanu</option><option value="25.00 Kr">Õpilane 5-12kl</option><option value="3">Laps kuni 4kl</option></select>Summa: <input type="text" id="summa_'+count+'" /> Linn/Maakond <input type="text" id="linn_'+count+'" /> Rivi: <input type="checkbox" id="rivi_'+count+'" /><input type="button" id="kustuta" onclick="delete()" value="Kustuta" /></p></div>' 
$('#container').append(code) 
$('#val').val(count) 
} 
function delete(){ 
$('.inimene:last').remove(); 
} 
$(document).ready(function(){ 
$('.add').click(add) 
}); 
</script> 
+1

Vous avez une erreur de syntaxe dans ce code: Plus précisément, vous avez fonction appelée "delete". 'delete' est un mot-clé dans JavaScript, vous ne pouvez pas l'utiliser pour les identifiants non-cotés (comme les noms de fonctions). –

Répondre

0

Je pense que vous devriez les identifier dans un sens et les classer un autre et supprimer en fonction de la classe.

Ainsi,

var code = '<div class="inimene" ID="inimene_'+count+'"><p>Eesnimi: <input type="text" id="eesnimi_'+count+'" /></br>Perenimi: <input type="text" id="perenimi_'+count+'" /></br>Pilet: <select><option selected>Vali pileti liik</option><option value="100.00 Kr">Täiskasvanu</option><option value="25.00 Kr">Õpilane 5-12kl</option><option value="3">Laps kuni 4kl</option></select>Summa: <input type="text" id="summa_'+count+'" /> Linn/Maakond <input type="text" id="linn_'+count+'" /> Rivi: <input type="checkbox" id="rivi_'+count+'" /><input type="button" id="kustuta" onclick="delete()" value="Kustuta" /></p></div>' 
$('#container').append(code) 
$('#val').val(count) 
} 
function delete(){ 
$('.inimene:last').remove(); 
} 
$(document).ready(function(){ 
$('.add').click(add) 
}); 
0

Pour sélectionner la classe inimene (annexant une variable de comptage), vous pouvez le faire:

$('#container > .inimene_' + count).remove(); 

Ainsi, votre fonction de suppression peut ressembler à ceci:

function delete_it(count){ 
    $('#container > .inimene_' + count).remove(); 
} 

delete_it(2); 

Ou si vous n'avez pas pris la peine d'ajouter le count au nom de la classe, vous pouvez simplement sélectionner par classe inimene et le réduire par son indice:

function delete_it(count){ 
    $('#container > .inimene:eq(' + count + ')').remove(); 
    // $('#container > .inimene').eq(count).remove(); // or this 
} 

delete_it(2); 
0

Comment spécifier que div que vous voulez supprimer? Si vous voulez simplement supprimer le dernier élément ajouté, vous devez ajouter une autre classe identique pour chaque div puis sélectionner tous les éléments de cette classe avec jQuery et supprimer le dernier élément.

Si par exemple vous avez ajouté une autre classe aux divs créés appelés « inimene » alors votre code de suppression ressemblerait à ceci:

$('.inimene').last().remove();

Questions connexes