Jquery 如果表格标题具有特定字符串,则应用id

Jquery 如果表格标题具有特定字符串,则应用id,jquery,Jquery,我想将一个id应用于标题中有特定字符串的表。该表没有任何css标记,如果不动态添加,我无法添加它们。 这是我的桌子: <div id="primary" class="page"> <div class="inside"> <table border="10"> <tr><th>You may search for materials using the following:</th></tr> <tr&

我想将一个id应用于标题中有特定字符串的表。该表没有任何css标记,如果不动态添加,我无法添加它们。 这是我的桌子:

<div id="primary" class="page">
<div class="inside">
<table border="10">
<tr><th>You may search for materials using the following:</th></tr>

<tr><td align="center"><a href="#">NAME</a></td></tr>
<tr><td align="center"><a href="#">TITLE</a></td></tr>
<tr><td align="center"><a href="#">SUBJECT</a></td></tr>
<tr><td align="center"><a href="#">WORD</a></td></tr>
<tr><td align="center"><a href="#">ISBN</a></td></tr>
<tr><td align="center"><a href="#">ISSN</a></td></tr>
</table>

您可以使用以下内容搜索材料:
我想将#mytable的id应用于在表格标题中包含字符串“you may search for materials”的任何表格 我尝试使用.addClass,但我感到困惑。如果有任何帮助,我将不胜感激, 谢谢

我建议:

$('table th:contains("You may search for materials using the following")')
    .closest('table').addClass('myTable');

请注意,我添加的是
名称,而不是
id
,因为您的问题意味着页面上可能有多个元素与给定条件匹配

我进一步建议不要使用
表格
,因为它显然不是表格数据,而是列表,因此使用
ul
似乎更合适:

<ul>
    <li class="header">You may search for materials using the following:</li>
    <li><a href="#">NAME</a></li>
    <li><a href="#">TITLE</a></li>
    <li><a href="#">SUBJECT</a></li>
    <li><a href="#">WORD</a></li>
    <li><a href="#">ISBN</a></li>
    <li><a href="#">ISSN</a></li>
</ul>
和jQuery:

$('li.header:contains("You may search for materials using the following")')
    .closest('ul').addClass('myTable');

参考资料:


您可以使用如下高级选择器:

$('th:contains("You may search for materials")').closest('table')
                                                .addClass('mytable');
将类用作ID必须是唯一的


注意:
contains()
区分大小写。

我想将
#mytable
id
应用到任何表中。如果您意识到
id
在文档中必须是唯一的,对吗?这不是表的用途。如果你只是想格式化东西,使用CSS。使用表格显示表格数据。使用addClass,您不会添加
id
,而是(如函数名所示)
class
。使用
$('').attr('id','mytable')
。在一个文档中使用多个ID会受到警告。
$('th:contains("You may search for materials")').closest('table')
                                                .addClass('mytable');