0

我有一个非常简单的结构,如下所示。我在 jquery 中尝试做的是找到选中复选框的所有下拉列表。

  <table>
    <tr>
     <td> <asp:DropDownList ID="ddDurationHours" runat="server"/> <td>
     <td>Data<td>
     <td>Data<td>
     <td> <asp:CheckBox runat="server" ID="chkDelete"/> </td>
     <td>Data<td>
    </tr>
    <tr>
     <td><asp:DropDownList ID="ddDurationHours" runat="server"/> </td>
     <td>Data<td>
     <td>Data<td>
     <td>  <asp:CheckBox runat="server" ID="chkDelete"/> </td>
     <td>Data<td>
    </tr>
    </table>

我尝试了几件事,无法全部记住,但我最近的尝试是:

var hoursDropdowns = jQuery('select[name*="ddDurationHours"]').closest('tr').find('td:first input[name*="chkDelete"]:checked:enabled');

有没有人知道我正在努力解决这个问题。

4

4 回答 4

2

对下拉列表和复选框使用类选择器以获得更简洁的选择器

$(".checkboxclass:checked").closet('tr').find('.dropdownclass')
于 2012-04-19T12:26:59.460 回答
0

试试这个:

$('select[name*=ddDurationHours]').each(function(){

var len = $(this).parent().parent().find('input[name*=chkDelete]:checked').length;
if(len == 1)
{
    var drd = $(this);
}

});

如果复选框被选中,那么你得到长度 = 1,你的下拉菜单是 $(this)。

于 2012-04-19T12:27:06.497 回答
0

如果您给其中一个包含元素一个类,这可能更容易实现。

例如

<tr class="findme">
 <td> <asp:DropDownList ID="ddDurationHours" runat="server"/> <td>
 <td>Data<td>
 <td>Data<td>
 <td> <asp:CheckBox runat="server" ID="chkDelete"/> </td>
 <td>Data<td>
</tr>

然后使用: -

$('.findme input:checked')

在您的结构中获取已检查的输入。

您也可以为 CheckBox 提供一个类,但我相当确定在呈现复选框时,ASP .NET 会将其包装在一个跨度中,因此:-

$('input.findme:checked')可能不起作用,因为该类应用于跨度,而不是输入。

于 2012-04-19T12:27:25.670 回答
0

$("input:checkbox:checked").parent().parent().find("select")

于 2012-04-19T12:33:41.220 回答