如何在jQuery中找到包含contains的标题eq位置

时间:2014-01-28 14:59:46

标签: jquery

我有一个表,我需要知道带有eq()的标题的位置,同时包含单词'this',然后将addclass添加到同一行中的标记。

<table>
    <tr>
        <th>Header1</th>
        <th>Header2this</th> //catch you in 1
        <th>Header3this</th> //catch you in 2
    </tr>
    <tr>
        <td>Row1</td>
        <td>Row1</td> //Add class
        <td>Row1</td> //Add class
    </tr>   

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

一旦将其分解为部分,这非常简单:

首先,您需要找到文本中包含'this'的所有th元素:

$('#sometable').find("th").filter(function () {
    return $(this).text().indexOf('this') > 0;
})

然后,对于其中每一个,你需要找出它们的索引位置并将一个类添加到其索引等于它的td:

.each(function() {
    var $table = $('#sometable');
    $table.find('td').eq($table.find("th").index(this)).addClass('class');
});

所以,把它们放在一起:

$('#sometable').find("th").filter(function () {
    return $(this).text().indexOf('this') > 0;
}).each(function() {
    var $table = $('#sometable');
    $table.find('td').eq($table.find("th").index(this)).addClass('class');
});

fiddle for demo

答案 1 :(得分:0)

您可以使用indexOf()查看变量是否包含指定的字符串。

var text = $(this).text();
if (text.indexOf("this") != -1) {

您可以使用以下方法将类添加到每个x行:

:nth-child(3n+1)

这是一个工作版本: http://jsfiddle.net/y69Zm/