Проблема выбора о Jquery - PullRequest
0 голосов
/ 13 июня 2009

В приведенном ниже коде, когда я щелкаю lnkSecc, я хочу, чтобы флажки под первым div шли после lnkSecc, 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">&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>

Ответы [ 2 ]

3 голосов
/ 13 июня 2009

Я согласен с другими авторами, вам действительно следует сменить lnkSecc и Grup на классы Css.

Если это статические идентификаторы HTML, исходящие из сетки данных ASP.Net, то вы используете столбец шаблона. Должно быть относительно легко изменить статический HTML-код в этом столбце шаблона для создания класса вместо идентификатора.

С этим изменением ваш код должен выглядеть примерно так:

// 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;

    });

});

});
0 голосов
/ 13 июня 2009

Прежде всего, идентификаторы предназначены для уникальных элементов на вашей HTML-странице. Никогда не должно быть двух элементов с одинаковым идентификатором. Вы должны использовать атрибуты класса, чтобы различать элементы похожего типа / функции.

Если вы хотите пройти DOM, вам нужно перейти к следующему разделу группы и найти флажок типа всех потомков.

См. JQuery Траверс / Найти API

Если вы измените все идентификаторы на класс, пример кода будет выглядеть примерно так

 $(document).ready(function() {
    $("a.lnkSecc").click(function() {
        var children = $(this).next('div.Grup').find(':checkbox').get(0).checked=true;
    });
 });
...