如果表头具有特定字符串,则应用id

时间:2013-03-08 15:51:09

标签: 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><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应用于任何具有字符串“你可以搜索材料”的表格中 我尝试使用.addClass,但我感到困惑。我将不胜感激任何帮助, 感谢

2 个答案:

答案 0 :(得分:0)

我建议:

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

JS Fiddle demo

请注意,我正在添加class名称而不是id,因为您的问题意味着页面上可能有多个符合该条件的元素。

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

ul

使用以下CSS来近似显示<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> 演示文稿的外观:

table

并改编了jQuery:

ul {
    width: 50%;
    border: 10px groove #666;
    margin: 0;
    padding: 0;
}

li {
    padding: 0;
    margin: 0.2em;
    list-style-type: none;
    text-align: center;
    border: 1px solid #aaa;
}

li.header {
    font-weight: bold;
}

ul.myTable li.header {
    color: #f00;
}

JS Fiddle demo

参考文献:

答案 1 :(得分:0)

您可以像这样使用高级选择器:

$('th:contains("You may search for materials")').closest('table')
                                                .addClass('mytable');

使用她作为ID的类必须是唯一的。

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