jQuery查找TR-> TH值(s)

时间:2015-04-13 15:03:32

标签: javascript jquery html wildcard

嘿,我在这里有以下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个标题。

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:2)

将其添加到选择器的开头:

$('tr[role="row"] > th[id*="headingData_"]').each(function () {
    fieldNames += $(this).data("dbname") + '~';
    console.log(fieldNames);
});