嘿,我在这里有以下jquery代码:
$('th[id*="headingData_"]').each(function () {
fieldNames += $(this).data("dbname") + '~';
console.log(fieldNames);
})
这是我从中提取数据的HTML:
<tr role="row">
<th id="headingData_0" data-dbname="F_FName" class="sorting_asc" tabindex="0"
aria-controls="theDataTable" rowspan="1" colspan="1" aria-sort="ascending"
aria-label="First Name: activate to sort column ascending"
style="width: 557px;">First Name
</th>
<th id="headingData_1" data-dbname="F_LName" class="sorting" tabindex="0"
aria-controls="theDataTable" rowspan="1" colspan="1"
aria-label="Last Name: activate to sort column ascending"
style="width: 557px;">Last Name
</th>
<th class="sorting" tabindex="0" aria-controls="theDataTable" rowspan="1"
colspan="1" aria-label="Action: activate to sort column ascending"
style="width: 438px;">Action
</th>
</tr>
上面的jQuery代码确实可以工作但是在表格下面还有同名的页脚标签,所以(在这个例子中)有3个标题;
名字
姓氏
动作
因此,当我运行时,它会将名字和姓氏加倍。我试图找到一种方法只获取标题标签而不是页脚标签。
页脚HTML如下所示:
<tr>
<th id="headingData_0" data-dbname="F_FName" rowspan="1" colspan="1">First Name
</th>
<th id="headingData_1" data-dbname="F_LName" rowspan="1" colspan="1">Last Name
</th>
<th rowspan="1" colspan="1">Action</th>
</tr>
所以我试图找出方法让我只查询 tr role =“row”部分以获取这些标题而已。标题在任何给定时间可能有超过2个标题,因此它并不总是只有2个标题。
任何帮助都会很棒!
答案 0 :(得分:2)
将其添加到选择器的开头:
$('tr[role="row"] > th[id*="headingData_"]').each(function () {
fieldNames += $(this).data("dbname") + '~';
console.log(fieldNames);
});