Как получить родственное значение td?

#javascript #jquery #asp.net

#javascript #jquery #asp.net

Вопрос:

 <table>
     <tr>
        <td>
           <asp:Label ID="lblUnitPrice" runat="server" Text='<%#Eval("UNIT_PRICE") %>' />
           <input type="text" id="txtUnitPrice" style="display: none" />
        </td>
        <td>
           <asp:LinkButton ID="linkBtnUnitPrice" runat="server" Text="Edit" OnClientClick="SetEditMode(this); return false;" />
        </td>
     </tr>
</table>
  

Я хочу получать идентификатор lblUnitPrice, когда пользователь нажимает на linkBtnUnitPrice, то есть в функции SetEditMode (this) с использованием jQuery или Javascript

Ответ №1:

 $(this).parent().prev().find("input").attr("id");
  

Ответ №2:

Просто для ясности; jQuery ничего не знает о ваших тегах ASP; он увидит только готовый HTML-код. В этом случае я ожидаю, что ваш <asp:Label> должен сгенерировать один HTML-тег, но это не всегда так с более сложными тегами ASP.

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

 $('#linkBtnUnitPrice').click(function() {
    var label = $(this).parent().siblings().find('label');
});
  

однако, учитывая, что вы уже знаете идентификатор как кнопки, так и метки, вам на самом деле не нужно искать родственные значения; вы можете сразу перейти к соответствующему идентификатору:

 $('#linkBtnUnitPrice').click(function() {
    var label = $('#lblUnitPrice');
});
  

Ответ №3:

добавление этого или чего-то подобного к кнопке, вероятно, помогло бы. (сам не проверял, хотя.)

 onclick="alert(jQuery(this).parent().siblings('td').children('label').attr('id'))"