gpt4 book ai didi

javascript - 使用jquery获取表中隐藏标签的值?

转载 作者:行者123 更新时间:2023-12-02 16:54:14 28 4
gpt4 key购买 nike

我在 ListView 中有一个 html 表,其中有一个名为“vehicle_num”的隐藏标签。我能够获取表格的选定行以及任何 td,但是我似乎无法获取标签的值。我尝试过:

var vehicle_number = $(this).closest('tr').children('#vehicle_num').text();

下面是 ListView 的代码。如何获取标签的值?

<asp:ListView ID="lvEquipmentList" runat="server" DataKeyNames="vehicle_number">
<LayoutTemplate>
<table id="table-equipment-list" class="table table-list">
<thead>
<tr>
<th scope="col" class="product-line">Product line</th>
<th scope="col" class="model-number">Model #</th>
<th scope="col" class="serial-number">Serial #</th>
<th scope="col" class="dar-status">DAR Status</th>
<th scope="col" class="ship-date">Ship Date</th>
</tr>
</thead>
<tbody>
<asp:PlaceHolder ID="ItemPlaceholder" runat="server" />
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<th scope="row" class="product-line"><div class="icon"><img src='<%#Eval("image_path")%>' onerror="this.src='assets/images/placeholder.png';" alt=""/></div> <span class="line-title"><%#Eval("product_line")%></span></th>
<td class="model-number"><%#Eval("model")%><label class="vehicle_num" hidden="hidden"><%#Eval("vehicle_number")%></label></td>
<td class="serial-number"><%#Eval("serial_number")%></td>
<td class="dar-status"><img src='<%#Eval("display_status") %>'/></td>
<td class="ship-date"><%#Eval("date")%></td>
</tr>
</ItemTemplate>
<EmptyDataTemplate>
<table id="table-equipment-list" class="table table-list">
<thead>
<tr>
<th scope="col" class="product-line">Product line</th>
<th scope="col" class="model-number">Model #</th>
<th scope="col" class="serial-number">Serial #</th>
<th scope="col" class="dar-status">DAR Status</th>
<th scope="col" class="ship-date">Ship Date</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row" class="product-line"><div class="icon"></div> <span class="line-title"></span></th>
<td class="model-number"></td>
<td class="serial-number"></td>
<td class="dar-status"></td>
<td class="ship-date"></td>
</tr>
</tbody>
</table>
</EmptyDataTemplate>
</asp:ListView>

编辑

我已经编辑了上面的代码,将标签放入表列中。我能够使用以下方法获取值:

var vehicle_number = $(this).closest('tr').find('.vehicle_num').text();

最佳答案

这是无效标记:

<tr>
<th scope="row" class="product-line"><div class="icon"><img src='<%#Eval("image_path")%>' onerror="this.src='assets/images/placeholder.png';" alt=""/></div> <span class="line-title"><%#Eval("product_line")%></span></th>
<td class="model-number"><%#Eval("model")%></td>
<td class="serial-number"><%#Eval("serial_number")%></td>
<td class="dar-status"><img src='<%#Eval("display_status") %>'/></td>
<td class="ship-date"><%#Eval("date")%></td>
<label id="vehicle_num" hidden="hidden" runat="server"><%#Eval("vehicle_number")%></label>
</tr>

有一个错误的 label 作为 tr 的子项,该标签无效。当浏览器试图理解这一点时,它可能会使用该标签执行任何操作来构造有效的 DOM,这将影响您的 jQuery 选择器。

标签需要位于表格单元格中:

<tr>
<th scope="row" class="product-line"><div class="icon"><img src='<%#Eval("image_path")%>' onerror="this.src='assets/images/placeholder.png';" alt=""/></div> <span class="line-title"><%#Eval("product_line")%></span></th>
<td class="model-number"><%#Eval("model")%></td>
<td class="serial-number"><%#Eval("serial_number")%></td>
<td class="dar-status"><img src='<%#Eval("display_status") %>'/></td>
<td class="ship-date"><%#Eval("date")%></td>
<td><label id="vehicle_num" hidden="hidden" runat="server"><%#Eval("vehicle_number")%></label></td>
</tr>

(或者,如果它始终隐藏,您可以将其放入现有的表格单元格中。无论哪种方式都应该有效。)

此外,如果在此处显式设置客户端 id,那么这些记录的任何重复都会导致 DOM 中出现重复的 id,这也是无效的。当存在重复的 id 时,不同的浏览器以不同的方式响应基于 id 的选择器,因为行为未定义。您可能想改用一个类:

<label class="vehicle_num" ...

由于 label 不再是 tr,而是它的后代,因此使用find() 而不是 children():

$(this).closest('tr').find('.vehicle_num')

关于javascript - 使用jquery获取表中隐藏标签的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26302048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com