/ / Odstránenie prvkov z poľa nepracujúcich v jQuery - jQuery, polia, začiarkavacie políčko

Odstránenie prvkov z poľa, ktoré nefunguje v jquery - jquery, polia, začiarkavacie políčko

Mám na výberový dotaz z databázy generovaný súbor začiarkavacích políčok.

<input type="checkbox" name="grade_checkbox[]" class="grade_checkbox" value="1">
//value of checkbox is getting from database table.I have put value =1 as an example

Po kliknutí na jednotlivé políčka uložím hodnotu políčok do poľa.

var selected_grades = [];
$(".grade_checkbox").click(function(){
if(!$(this).is(":checked")
{
//remove the checkbox value from the array since it is unchecked
if($.inArray($(this).val(),selected_grades)!==-1)
{
selected_grades.remove(selected_grades.indexOf($(this).val()));
}
}
selected_grades = $("input:checkbox:checked.grade_checkbox").map(function () {
return this.value;
}).get();
console.log(selected_grades);
});

selected_grades je pole, ktoré sa používa na ukladanie začiarknutých políčok.

Keď začiarknem každé políčko, pole selected_grades V konzole sa zobrazí všetky začiarknuté políčka.

Keď sa pokúsim zrušiť začiarknutie všetkých políčok, v skutočnosti sa snažím odstrániť prvok, ak existuje z vyššie uvedeného poľa.Ale dostávam nasledujúcu chybu

TypeError: selected_grades.remove is not a function

Neviem, prečo sa to stane.

odpovede:

1 pre odpoveď č. 1

Môžete to jednoducho urobiť pomocou .splice()

selected_grades.splice(selected_grades.indexOf($(this).val()), 1);

Napríklad:-

Povedzme, že chceme odstrániť 3 z nižšie uvedeného poľa. Môžeme to urobiť takto

var array = [2, 3, 4, 5];
var index = array.indexOf(3);

var d = array.splice(index, 1);
console.log(d);     // returns [3]
console.log(array); // returns [2, 4, 5]