2013-03-31 4 views
2

Я пытаюсь проверить только флажки с определенным значением. Я знаю, как получить значение, и я знаю, как проверить все галочки, но я не могу понять, как проверить только те, с, позволяет сказать, что значение «200»Установите флажки только с определенным значением

Мой пример кода:

<tr> 
    <td><input class="chk_box" type="checkbox" value="200" /></td> 
    <td class="code">200</td> 
</tr> 
<tr> 
    <td><input class="chk_box" type="checkbox" value="0" /></td> 
    <td class="code">0</td> 
</tr> 
<tr> 
    <td><input class="chk_box" type="checkbox" value="0" /></td> 
    <td class="code">0</td> 
</tr> 
<tr> 
    <td><input class="chk_box" type="checkbox" value="200" /></td> 
    <td class="code">200</td> 
</tr> 
<tr> 
    <td><input class="chk_box" type="checkbox" value="300" /></td> 
    <td class="code">300</td> 
</tr> 

<input type="checkbox" class="checkbox_200" label="check 200" />check 200 

Итак, теперь мне нужен код jQuery для завершения моего кода. Я ценю любую помощь.

BTW. Есть ли способ проверить «200» и «300» за один раз?

ОБНОВЛЕНО!

+0

Где находится _your_ код? – moonwave99

+0

Это хороший момент, у меня нет значения chk_box. Я так долго редактировал этот код, что я пропустил это. – Chriser

ответ

4

Ваши флажки не имеют атрибутов value, если вы хотите установить флажки в соответствии с текстовым содержимым элементов TD, вы можете использовать метод filter.

$('td.code').filter(function(){ 
    var txt = this.textContent || this.innerText; 
    return txt === '200' || txt === '300'; 
}).prev().find('input').prop('checked', true); 

Update:

$('tr input[type=checkbox][value=200]').prop('checked', true); 

Альтернативные:

$('tr input[type=checkbox]').filter(function(){ 
    return this.value === '200' || this.value === '300'; 
}).prop('checked', true); 
+0

Отлично, работает как шарм. Спасибо – Chriser

+0

Есть ли способ проверить, снять флажок? – Chriser

+0

@Chriser Да, используйте 'false' вместо' true' в методе 'prop'. – undefined

4

Ваши флажков не имеет значения. В строке есть только текст. Попробуйте изменить код и установить значение для входов.

<input class="chk_box" type="checkbox" value="200" /> 200 
<br /> 
<input class="chk_box" type="checkbox" value="0" />0 
<br /> 
<input class="chk_box" type="checkbox" value="0" />0 
<br /> 
<input class="chk_box" type="checkbox" value="200" /> 200 
<br /> 
<input class="chk_box" type="checkbox" value="300" /> 300 

вы можете использовать этот селектор:

input[type=checkbox][value="200"] 

Для JQuery использовать его внутри $ ("").

Пример: http://jsbin.com/oyetit/1/edit

+0

Спасибо за это, я только что испортил исходный код, теперь обновленный. – Chriser

+0

, чтобы сделать 200 и 300 выбранных сразу, используйте это: $ ('input [type = checkbox] [значение = "200"], input [type = checkbox] [значение = "300"]'). Prop ("checked ",правда); – Saram

0

Хорошо, я в конечном итоге с этим раствором, слегка видоизмененный и благодаря @undefined:

var chk = $(this).attr('checked')?true:false; 
$('tr input[type=checkbox][value=200]').attr('checked',chk);  

Это позволяет мне проверить/снятия флажков со значениями Я заинтересован в

И то же самое для нескольких значений:.

var chk = $(this).attr('checked')?true:false; 
$('tr input[type=checkbox]').filter(function(){ 
    return this.value === '200' || this.value === '300'; 
}).attr('checked',chk); 
Смежные вопросы