在下面的代码中,当我点击lnkSecc时,我想要在lnkSecc之后的第一个div下面的复选框,其中id是Grup被选中。我该怎么办?
<td>Sipariş</td><td>
<a href="#" id="lnkSecc" onclick="javascript:SelectSubCheckboxes(this);" >Seç/Kaldır</a>
</td><td>
<div id="Grup">
<table cellspacing="0" cellpadding="0" rules="all" border="0" id="dgrMenu__ctl6_dgrIslem" width="98%">
<tr>
<td align="Center" width="25"><font face="Verdana" size="1"> </font></td>
</tr><tr>
<td align="Right"><font face="Verdana" size="1">
<input id="dgrMenu__ctl6_dgrIslem__ctl2_chkSec" type="checkbox" name="dgrMenu:_ctl6:dgrIslem:_ctl2:chkSec" />
</font></td>
</tr>
</table>
</div>
</td>
</tr><tr bgcolor="WhiteSmoke">
<td><b>Fatura</b></td><td><b>
<a href="#" id="lnkSecc" onclick="javascript:SelectSubCheckboxes(this);" >Seç/Kaldır</a>
</b></td>
<td><b>
<div id="Grup">
</div>
</b></td>
答案 0 :(得分:3)
我同意其他海报,你真的应该将lnkSecc
和Grup
改为Css类。
如果这些是来自ASP.Net数据网格的静态HTML ID,那么您使用的是模板列。在模板列中更改静态HTML以发出类而不是id。应该相对容易。
如果有效更改,您的代码应如下所示:
// Format all of your hyperlinks when the page finishes loading
$().ready(function() {
// For each hyperlink of CSS class lnkSecc
$(".lnkSecc").click(function(e) {
// Don't let the hyperlink navigate
e.preventDefault();
// Walk UP the DOM to the first TR, and
// back down to the Grup CSS class, and then
// its child checkboxes
$(this).parents("tr").find(".Grup input:checkbox").each(function() {
// Mark the found checkbox as checked
this.checked = true;
});
});
});
答案 1 :(得分:0)
首先,ids适用于html页面上的唯一元素。永远不应该有两个具有相同id的元素。您应该使用类属性来区分相似类型/函数的元素。
如果你想遍历DOM,你会想要转到下一个div grup并找到所有后代类型复选框。
请参阅jQuery Traverse/Find api
如果您确实将所有ID更改为类,示例代码将类似于此
$(document).ready(function() {
$("a.lnkSecc").click(function() {
var children = $(this).next('div.Grup').find(':checkbox').get(0).checked=true;
});
});