Javascript 选择所有复选框-但仅选择具有相同表格单元格值的复选框
希望我能解释这一点而不会使问题过于复杂,所以请耐心听我说。我已经知道如何编写一些JavaScript来选择表单中的所有复选框,但是您将如何执行以下操作 代码如下:Javascript 选择所有复选框-但仅选择具有相同表格单元格值的复选框,javascript,Javascript,希望我能解释这一点而不会使问题过于复杂,所以请耐心听我说。我已经知道如何编写一些JavaScript来选择表单中的所有复选框,但是您将如何执行以下操作 代码如下: <tr> <td> <input type="checkbox" name="array[]" value="value1"/> </td> <td> Some Field </td> <
<tr>
<td>
<input type="checkbox" name="array[]" value="value1"/>
</td>
<td>
Some Field
</td>
<td>
Bob
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="array[]" value="value2"/>
</td>
<td>
Some Field
</td>
<td>
Bob
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="array[]" value="value3"/>
</td>
<td>
Some Field
</td>
<td>
Fred
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="array[]" value="value4"/>
</td>
<td>
Some Field
</td>
<td>
Jack
</td>
</tr>
某个领域
上下快速移动
某个领域
上下快速移动
某个领域
弗莱德
某个领域
杰克
我希望能够选择/取消选择与“Bob”相关的所有复选框,但不能选择Jack或Fred。公共数据必须包含在TD元素中。这可能吗
如果有人能帮忙,那就太好了
非常感谢您的回复subhaze,但我没有太多的运气让它工作,以下是我的代码:
function selectBOB() {
var trs = document.getElementsByTagName('tr');
for( var i = 0; i < trs.length; i++ ) {
var tds = trs[i].getElementsByTagName('td');
for( var k = 0; k < tds.length; k++ ) {
if( tds[k].innerText == 'Bob' ) {
trs[i].getElementsByTagName('input')[0].checked = 'checked';
}
}
}
}
<input type="checkbox" name="sAll" onclick="selectBOB(this)" /> Select Bob
函数selectBOB(){
var trs=document.getElementsByTagName('tr');
对于(变量i=0;i
这不是一个超级灵活的解决方案,因为它依赖于您的标记保持这种格式,但可能会让您朝着正确的方向前进
HTML
选择所有BOB
选择所有FRED
某个领域
上下快速移动
某个领域
上下快速移动
某个领域
弗莱德
某个领域
杰克
JavaScript
function setChecks( checkboxElem ) {
var trs = document.getElementById('myTable').getElementsByTagName('tr');
for( var i = 0; i < trs.length; i++ ) {
var tds = trs[i].getElementsByTagName('td');
for( var k = 0; k < tds.length; k++ ) {
if( tds[k].innerText == checkboxElem.getAttribute('data-name')
|| tds[k].textContent == checkboxElem.getAttribute('data-name')) {
trs[i].getElementsByTagName('input')[0].checked = checkboxElem.checked;
}
}
}
}
函数设置检查(checkboxElem){
var trs=document.getElementById('myTable').getElementsByTagName('tr');
对于(变量i=0;i
这段代码是由某种服务器端脚本语言+数据库输出的吗?是的-它是由PHP生成的。好的,谢谢,你还有一个函数名selectBob()
,但是把onclick设置为selectNR(this)
。我还将用选择和取消选择按钮更新我的答案。这听起来不是忘恩负义,但您的示例在Firefox:o中不起作用(@David,you don't:P似乎你无法从Firefox的表格单元格中获取innerText,我已经更新了这个示例,以获取innerText或在Firefox中工作的textContent,这可能是一个很有用的附加功能-我如何获得多个“document.getElementById('select')。onclick=function(){setChecks('Bob',this)};”所以我可以在一个页面中找到:document.getElementById('select').onclick=function(){setChecks('Fred',this)};和document.getElementById('select').onclick=function(){setChecks('Jack',this)};另外?如果您可以控制HTML,则可以将数据属性设置为复选框,然后将此传递给它们。
。查看此更新的示例,看看它是否适合您的需要。
function setChecks( checkboxElem ) {
var trs = document.getElementById('myTable').getElementsByTagName('tr');
for( var i = 0; i < trs.length; i++ ) {
var tds = trs[i].getElementsByTagName('td');
for( var k = 0; k < tds.length; k++ ) {
if( tds[k].innerText == checkboxElem.getAttribute('data-name')
|| tds[k].textContent == checkboxElem.getAttribute('data-name')) {
trs[i].getElementsByTagName('input')[0].checked = checkboxElem.checked;
}
}
}
}