我有一个表格,下面详细介绍了如何根据tr类名称获取td索引
<Table id="#Hs_tbl">
<thead>
<th>country</th>
<th>state</th>
<th>city</th>
</thead>
<tr>
<td>india</td>
<td class="htInvalid">Bnagalore</td>
<td class="htInvalid">mysore</td>
</tr>
</table>
现在需要基于class =&#34; htInvalid&#34 ;;的td标签索引。这是我尝试过的,我只能获得一个TD名称,如何获得两个TD名称。这是我的代码:
var col = $("#Hs_tbl tr").find("td." + "htInvalid").index();
如何同时获取列名?
答案 0 :(得分:1)
要么,您需要从表的ID属性中删除#
。
<table id="Hs_tbl">
或者,您需要在选择器中转义#
元字符,如
$("#\\#Hs_tbl tr").find("td." + "htInvalid").index()
使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。
要获取所有文字,可以使用map()
var alltdtext = $("#\\#Hs_tbl tr").find("td.htInvalid").map(function(){
return $(this).text();
}).get();
答案 1 :(得分:0)
首先需要转义id属性中的元字符:
$("#\\#Hs_tbl tr");
或使用属性等于选择器:
$("[id='#Hs_tbl'] tr")
为了获取文本,您可以使用.map()
函数获取元素的文本属性的jquery对象以及.get()
以将它们转换为数组:
var alltdtext = $("#\\#Hs_tbl tr").find("td.htInvalid").map(function(){
return $(this).text();
}).get();
工作代码段
var alltdtext = $("#\\#Hs_tbl tr").find("td.htInvalid").map(function(){
return $(this).text();
}).get();
console.log(alltdtext);
<Table id="#Hs_tbl">
<thead>
<th>country</th>
<th>state</th>
<th>city</th>
</thead>
<tr>
<td>india</td>
<td class="htInvalid">Bnagalore</td>
<td class="htInvalid">mysore</td>
</tr>
</table>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
答案 2 :(得分:0)
您也可以直接使用课程.htInvalid
并循环浏览每个课程以获取文字&amp;这是索引
var alltdtext = $(".htInvalid").each(function(){
var a =$(this).text(); // Bangalore,mysore
var index =$(this).index(); //1,2
console.log(a ,index)
})