将数组值添加为表行类

时间:2011-06-27 07:02:48

标签: jquery

我需要遍历数组并将其值添加为表格行,其中表格单元格具有“colspan = 10”。

这是我的HTML:

<tbody>
<tr>
    <td><a href="#"><img src=""></a></td>
    <td width="100%" align="left" colspan="10"><a href="#">Anchor</a></td>
</tr>
<tr>
    <td colspan="1" class="text"><img></td>
    <td valign="top" nowrap="" align="right"><a href="#"><img src=""></a></td>
    <td width="100%" align="left" colspan="9" class="smalltext"><a href="#" class="dottedlink">Anchor</a></td>
</tr>
<tr>
    <td colspan="1" class="text"><img></td>
    <td valign="top" nowrap="" align="right"><a href="#"><img src=""></a></td>
    <td width="100%" align="left" colspan="9" class="smalltext"><a href="#" class="dottedlink">Anchor</a></td>
</tr>
<tr>
    <td><a href="#"><img src=""></a></td>
    <td width="100%" align="left" colspan="10"><a href="#">Anchor</a></td>
</tr>
</tbody>

请帮忙!我在jquery中是全新的

PS我可以添加相同的类,但不能添加数组

3 个答案:

答案 0 :(得分:1)

这应该是你要求的

var classes = ['one', 'two', 'three', 'whatever']; // <-- your class array

var $cells = $('td[colspan=10]');  // <-- selects table cells with colspan=10

$cells.each(function(index, element){  // <-- executes this function for each cell in the $cells list
    var row = $(element).parent('tr');  // navigate to parent element <tr>
    row.addClass( classes.shift() ); // <-- shift() removes and returns first element in the list
    //   ^-- addClass adds the string as a class without removing previous classes
});

当然这是出于教育目的。在现实生活中,您会更简洁地编写相同的代码:

var classes = ['one', 'two', 'three', 'whatever'];
$('td[colspan=10]').each(function(index, element){
    $(element).parent('tr').addClass(classes.shift());
});

答案 1 :(得分:1)

所以你有一个像这样的数组:

var array = [];
array.push('classA');
array.push('classB');

现在,您希望将两个类添加到<td>并使用colspan = 10。

你可以这样做:(编辑 - 我添加了评论中建议的内容)

$('td[colspan=10]').each(function(){
     $(this).addClass(array.join(' ')) 
}

答案 2 :(得分:0)

我不清楚你想要实现的目标,但是你可以使用查询td获得colspan等于10的$("td[colspan=10]")元素数组,然后你可以为每个元素添加类它们最终看起来像:$("td[colspan=10]").addClass("myclass")。如果您更进一步,可以将这些课程添加到td但不添加到父tr元素:

$("td[colspan=10]").each(index, el) {
   el.parents("tr").addClass("myclass");
}

请告诉我这是否是你想要的......