如果文本存在,则返回行号



如果表包含文本"存储",我想获取行号

表格是这样的:

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>,并为您添加它。

希望这有帮助! :)

最新更新