2013-09-26 36 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你是對的,我的道歉 –