【发布时间】:2012-04-12 08:41:21
【问题描述】:
使用 jQuery 获取行的下一个节点的最快方法是什么?这是TreeList 的生成标记,它是GridView asp.net 的一种类型。我必须获得lblWorkItemId,即199。请考虑这是来自绑定控件。
<tr id="ctl00_PageContent_rtlRshItems_ctl04__2" class="rtlR rtlRL" style="background-color:Lavender;">
<td align="left" valign="middle" style="width:90px;">
<div id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut" class="RadComboBox RadComboBox_Windows7">
<table class="rcbFocused" style="border-width: 0pt; border-collapse: collapse;" summary="combobox">
<tbody>
<tr class="rcbReadOnly">
<td class="rcbInputCell rcbInputCellLeft" style="width:100%;">
<input id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_Input" class="rcbInput" type="text" readonly="readonly" value="Submitted" name="ctl00$PageContent$rtlRshItems$ctl04$rcbStatut" autocomplete="off">
</td>
<td class="rcbArrowCell rcbArrowCellRight">
<a id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_Arrow" style="overflow: hidden;display: block;position: relative;outline: none;">select</a>
</td>
</tr>
</tbody>
</table>
<input id="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_ClientState" type="hidden" name="ctl00_PageContent_rtlRshItems_ctl04_rcbStatut_ClientState" autocomplete="off">
</div>
</td>
<td class=" rtlCL" style="width:0px;">
<asp:label id="lblWorkItemId" text="199" visible="false"> </asp:label>
</td>
当组合框的选定值更改为某个值时,将调用以下javascript方法:
function OnClientSelectedIndexChanged(sender, eventArgs) {
var item = eventArgs.get_item();
if (item.get_text() == "Refused") {
var treeList = $find("<%= rtlRshItems.ClientID %>");
// var workItemId = [...]
OpenReasonWindow(workItemId);
}
}
【问题讨论】:
-
你看过.next()吗? api.jquery.com/next
-
详述 Adam 的评论...
$(this).next('#lblWorkItemID').text();将 DOM 迭代到 ID 为 lblWorkItemID 的下一个元素并获取它的文本,$(this) 是指您更改的元素你的功能,看起来像一个选择列表控制器。应该是你需要的。 -
@Ohgod 如果那不是直接兄弟,为什么不这样做。给定标记并假设在输入上触发事件,最好向上到包含行并在匹配的 id 上使用 find。请注意,该 id 可能会被 ASP.NET 修改,因为它位于控件中。
-
@Ohgodwhy,这会返回一个空字符串...
-
您的标记有些不一致。第一个
td看起来像从浏览器源复制粘贴,但在下一个包含asp:label元素。您是否混合使用客户端源代码和 aspx 标记?如果是这样,请注意,当您将 Web 控件Visible属性设置为false时,它不会呈现在页面上。如果您不需要显示它,使用asp:HiddenField控件而不是Label 可能会更好。
标签: javascript jquery asp.net asp.net-ajax telerik