我有一个表,我需要知道带有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>
感谢您的帮助!
答案 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');
});
答案 1 :(得分:0)
您可以使用indexOf()查看变量是否包含指定的字符串。
var text = $(this).text();
if (text.indexOf("this") != -1) {
您可以使用以下方法将类添加到每个x行:
:nth-child(3n+1)
这是一个工作版本: http://jsfiddle.net/y69Zm/