2017-01-31 19 views
0

У меня есть ячейка checkbox и checkall/uncheck all function. Когда я снять все, я хочу, чтобы убедиться, что первые останки проверили, но он не работает так, как показано ниже:jQuery меняет только определенный индекс массива флажков

$("input[name='temps[]']").removeAttr("checked"); // works 
$("input[name='temps[0]']").prop("checked", true); // doesn't work 

Есть обходной путь, так что я не возиться с ним внутри цикла, генерирующих флажки или я не могу этого сделать, давая первый флажок id?

$("#firstBox").prop("checked", true) 
+1

Может быть, используя ** первого ребенка ** селектор? –

+0

Можете ли вы опубликовать свой полный код для лучшего понимания? –

+1

Используйте этот '$ ('input [name =" temp [] "]: first'). Prop ('checked', true);' – CodeZilla

ответ

2

Вы можете использовать .eq(index) или :eq(index), чтобы получить элемент по указанному индексу, то требуемая операция может быть выполнена

$("input[name='temps[]']").eq(index).prop("checked", true); 

ИЛИ,

$("input[name='temps[]']:eq(" + index + ")").prop("checked", true); 

Вы можете также использовать :first selector для получить первый согласованный элемент DOM

$("input[name='temps[]:first']").prop("checked", true); 
+1

Это .eq() - это решение, совершенное. Я оставил все ответы, но не покажу. –

+0

@ SzélLajos, у вас недостаточно репутации, чтобы увеличить. и подумайте о том, чтобы принять ответ, который помог вам самому не обязательно моим. Вы задали несколько вопросов, но не получили ответа. см. [Как работает прием ответа?] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) таким образом, вы можете получить репутацию, тогда вы можете повысить. – Satpal

+0

О, я вижу! Я собираюсь это сделать. –

1

Посмотрите на свой HTML-источник. Имя элемента: temps[], а не temps[0]. Вот почему второй селектор не работает.

Чтобы выбрать первый, используйте .eq(0):

$("input[name='temps[]']") 
    .removeAttr("checked") 
    .eq(0) 
    .addClass('checked') 
    .prop('checked', true) 
; 
1

Вы можете использовать функцию eq() для извлечения элемента по номеру из списка JQuery. Это позволит создать производный список с только что один элемент, а затем вы можете продолжать как обычно:

$("input[name='temps[]']").eq(0).prop("checked", true); 
1
$("input[name='temps[]']")[0].prop("checked", true); 

Или

$("input[name='temps[]:first']").prop("checked", true);