2013-09-26 35 views
0

我有以下表格标记:jQuery的CSS选择表

<table> 
    <tr><td>foo</td><td class=marked>foo</td><td>foo</td></tr> 
    <tr><td class=marked>foo</td><td class=marked>foo</td><td class=marked>foo</td></tr> 
    <tr><td>foo</td><td>foo</td><td>foo</td></tr> 
    <tr><td>foo</td><td>foo</td><td class=marked>foo</td></tr> 
</table> 

几个细胞都标有marked类 - 我如何可以选择具有marked类细胞中的所有行?我知道如何选择所有标记的单元格,但是我需要选择器的行以循环。

我想实现的是一个数组/ JSON字符串,它包含了与标记细胞的细胞索引的所有行的所有数据,这看起来是这样说:

rowdata[0] = [1]; 
rowdata[1] = [0,1,2]; 
rowdata[3] = [2]; 

任何想法什么是最简单的方法去呢?

编辑:对不起,有一个错字,我的意思是类"marked"

+1

'若干个电池标有类Foo “不完全。有几个“class”标记为“',而另一些则具有'foo'的”text“值。另外,请显示您尝试过的代码。 –

+0

您可以使用[包含选择器](http://api.jquery.com/contains-selector/) – Pete

回答

1

尝试像

var rowdata=[]; 

$('tr').each(function(){ 
    $td=$(this).find('td'); 
    arr=[]; 
    $td.each(function(index,value){ 
     if($(this).hasClass('marked')) 
      arr.push(index); 
    }); 
    rowdata.push(arr); 
}); 

Fiddle

0
var rowdata = []; 
$('table tr').each(function() { 
    rowdata.push($(this).find('.marked').map(function() { 
     return $(this).index(); 
    }).get()); 
}); 

DEMO

+0

此答案位于低质量队列中。请解释你的代码。 – johnchen902

+0

@ johnchen902你是对的,我的道歉 –