Как получить дочерний элемент управления из Tr?

#javascript #jquery #asp.net

#javascript #jquery #asp.net

Вопрос:

У меня есть скрытое поле в каждом Tr моем шаблоне:

 <ItemTemplate>
    <tr style="" class="ui-selectee trClass ui-widget-content">
        <td style="width: 100px">
            <asp:HiddenField ID="idField" runat="server" Value='<%# Eval("Id") %>' />
            <asp:Label ID="IdLabel" runat="server" Text='<%# Eval("Id") %>' />
        </td>
        <td>
            <asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' />
        </td>
        <td>
            <asp:Label ID="EmailLabel" runat="server" Text='<%# Eval("Email") %>' />
        </td>
    </tr>
</ItemTemplate>
  

Нет, в each цикле на выбранном Tr , как я могу получить скрытое поле?

 $(".ui-selected", this).each(function () {
    var index = $(".selectable tr").index(this);

    var idField = ??
});
  

Я уже начал с:

 var idField = $(".selectable tr > [id*='idField']");
  

Но, похоже, это не работает!

Любая помощь!

Ответ №1:

 var id = $('tr.ui-selectee td input[type="hidden"]').val();
  

Комментарии:

1. Спасибо, но я предпочитаю иметь дело с идентификатором элемента управления вместо его типа

2. @Jack, идентификатор может быть искажен ASP.NET поэтому было бы лучше работать либо с селектором класса, либо с типом.

3. @Darin Dimitrov: Но это скрытое поле и, похоже, оно не поддерживает классы.

4. @Jack, конечно, что он поддерживает классы. Скрытые поля отображаются как <input type="hidden" class="foo" name="foo" value="bar" /> .

5. @Darin: Я пробовал, была выдана следующая ошибка: Parser Error Message: Type 'System.Web.UI.WebControls.HiddenField' does not have a public property named 'CssClass'.

Ответ №2:

попробуйте это…

 $(".ui-selected", this).each(function () {
    var index = $(this).find('#idField').val();// use common class for hidden field,that would be good.

    alert(index );
});
  

Комментарии:

1. Могу ли я использовать классы со скрытыми полями?