4

我试图只检查具有特定值的复选框。我知道如何获取值,我知道如何检查所有复选框,但我不知道如何只检查那些复选框,比如说“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 代码来完成我的代码。我很感激任何帮助。

顺便提一句。有没有办法一次性检查“200”和“300”?

更新!

4

3 回答 3

7

您的复选框没有value属性,如果您想根据 TD 元素的文本内容来检查复选框,您可以使用filter方法。

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

更新

$('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);
于 2013-04-01T00:03:55.000 回答
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

于 2013-04-01T00:08:57.980 回答
1

好的,我最终得到了这个解决方案,稍作修改并感谢@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); 
于 2013-04-01T00:40:37.943 回答