如果表格包含“存储”文本
,我想获取行号表格如下:
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();
你能帮我纠正我的代码吗?我只是编程的初学者,所以请帮助我。
答案 0 :(得分:0)
jQuery selectors 仅适用于格式正确的 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都是相同,并且每个<td>
元素中都有一个<tr>
元素,其中包含文本Storage
第二个片段明确指定<tbody>
,但请注意,如果您不手动指定,解析器将自动假设您想要使用<tbody>
,并为您添加它。
希望这有帮助! :)