Ich arbeite an einer Dropdown-Liste, die ein Kontrollkästchen und einen Wert enthält. Wenn ich ein Ankreuzfeld anwähle, wird die ID dieses Artikels an eine Eingabe im rechten Feld angehängt, und der Wert dieses Elements wird in Form eines Tags an das rechte Feld angehängt. Wenn ich erneut auf ein markiertes Kontrollkästchen klicke, müssen der angehängte Wert und das Tag rechts entfernt werden.Entfernen eines Wertes aus Array
Das Problem, mit dem ich konfrontiert bin, ist, dass das Kontrollkästchen Ich werde deaktiviert nicht entfernt wird, stattdessen wird ein anderer bereits eingelesener Wert entfernt.
Javascript:
var arr = [];
$(".taglistarea input[type='text']").click(function(){
if(!$(this).parent("div").next(".taglist").is(":visible")) {
$(this).parent("div").next(".taglist").slideDown();
} else {
$(this).parent("div").next(".taglist").slideUp();
}
});
$(".taglist ul li a input[type='checkbox']").click(function(){
var tagidall = $(".taglist ul li a").attr("id");
var tagideach = $(this).parent("a").attr("id");
var tagtexteach = $(this).text();
arr.push(tagideach);
if($(this).is(":checked")) {
$(this).addClass("active");
$(".ss").append('<a href="#" id="'+tagideach+'" class="tagss">International<span class="closetag"></span></a>');
} else {
$(".ss a[id="+tagideach+"]").remove();
//arr.splice(tagideach,1);
}
//alert(arr);
$("#idvals").val(arr.toString());
});
ich denke, dass Problem ist hier:
arr.splice(tagideach,1);
die komplette Geige ist hier: https://jsfiddle.net/kue83ud8/
Dank.
Dank für Ihren Code, @pwolaq zu entfernen. Deine Änderung hat funktioniert, und ich bin auch umgezogen arr.push (tagideach); Inside if ($ (this) .is (": checked")) {um sicherzustellen, dass das Slicen nur passiert, wenn das Kontrollkästchen aktiviert ist. Aber kannst du bitte die .splice-Funktion erklären und wie die 2 durch ',' getrennten Werte innerhalb von splce hinzugefügt werden? Bitte erkläre auch, warum ich überprüfen sollte, ob der zurückgegebene Wert nicht -1 ist. – user3450590
'indexOf' gibt -1 zurück, wenn Element nicht im Array gefunden wird - wenn ja, dann sollten Sie' splice' nicht verwenden; Das erste Argument von 'splice' ist der Startindex, das zweite ist die Anzahl der zu entfernenden Elemente - Sie sollten das in der Dokumentation lesen – pwolaq