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ď č. 1Môž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]