0

以下のコードでは、lnkSecc をクリックすると、ID が Grup である lnkSecc の後に来る最初の div の下にあるチェックボックスが選択されます。どうすればいいですか?

<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">&nbsp;</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>
4

2 に答える 2

3

私は他のポスターに同意します.CSSクラスに変更する 必要がlnkSeccあります.Grup

これらが ASP.Net データグリッドからの静的な HTML ID である場合は、テンプレート列を使用しています。そのテンプレート列の静的 HTML を変更して、ID の代わりにクラスを発行するのは比較的簡単なはずです。

その変更が有効になると、コードは次のようになります。

// Format all of your hyperlinks when the page finishes loading
$(document).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;
        });
    });
});
于 2009-06-13T14:18:16.903 に答える
0

まず第一に、IDはあなたのhtmlページのユニークな要素のためのものです。同じIDを持つ2つの要素があってはなりません。同様のタイプ/関数の要素を区別するには、クラス属性を使用する必要があります。

DOMをトラバースする場合は、次のdivグループに移動して、すべての子孫タイプのチェックボックスを見つけます。

jQuery Traverse /Findapiを参照してください

すべてのIDをクラスに変更すると、サンプルコードは次のようになります。

 $(document).ready(function() {
    $("a.lnkSecc").click(function() {
        var children = $(this).next('div.Grup').find(':checkbox').get(0).checked=true;
    });
 });
于 2009-06-13T13:49:20.280 に答える