如果表包含文本"存储",我想获取行号
表格是这样的:
Product | Apple | Lenovo | HTC | Samsung | LG
Camera | 20MP | 12MP | 22MP | 20MP | 20MP
RAM | 4GB | 4GB | 4GB | 3GB | 2GB
Storage | 32GB | 32GB | 32GB | 32GB | 32GB
Expandable | No | Yes | No | Yes | Yes
Contract | No | Yes | Same | Yes | Yes
在这种情况下,代码应返回值"4",但我的下面
不起作用var tid=$("tr td:contains('Storage')").index();
你能帮我纠正我的代码吗?我只是编程的初学者,所以请帮助我。
jQuery 选择器仅适用于格式完美的 HTML.
问题可能出在表格的结构上。
例如,如果省略<table>
,tr td:contains
选择器将不起作用:
var tid = $("tr td:contains('Storage')").index();
console.log(tid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
<td>Storage</td>
</tr>
但是如果你包括<table>
,tr td:contains
选择器将起作用:
var tid = $("tr td:contains('Storage')").index();
console.log(tid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody>
<tr>
<td>Storage</td>
</tr>
</tbody>
</table>
请注意,jQuery 在上面的两个代码段中是相同的,并且每个代码段中的 <tr>
元素中都有一个包含文本Storage
的 <td>
元素。
第二个代码段明确指定<tbody>
,但请注意,如果您不手动指定,解析器将自动假定您想要使用<tbody>
,并为您添加它。
希望这有帮助! :)