2013-11-14 45 views
0

我想通過知道其中一個元素(div)的ID來獲取表的<tr>元素。查找包含已知選擇器的<tr>

下面是表看起來像HTML:

<table id="table-0"> 
    <thead> 
    <tr role="row"> 
    <th>house</th> 
    <th>phone</th> 
    </tr> 
    </thead> 
<tbody> 
<tr class="odd"> 
    <td class=""> 
    <div id="56"></div>my house 
    </td> 
    <td class=""> 
    <div id="57"></div>1234 
    </td> 
</tr> 
</tbody> 
</table> 

所以我想獲得具有包含ID爲56(在這個例子中)一個<div>一個<td>元素<tr>元素。

這是我在jQuery的嘗試(數據[ '身份證'] = 56):

var tr = $("tr:has(td:has($(\"#\" + data['id']))))"); 
+1

一個ID不應該以數字開頭,並且應該是唯一的。 – adeneo

+1

你有兩個具有相同'id'的元素 - 這在HTML中是無效的。您需要使用類來分組標識符。 –

+1

@adeneo在HTML5中,以數字開頭的'id'屬性有效 –

回答

3

您也可以通過元素ID的TR:

var tr = $('#Id').closest("tr"); 

你的情況:

var tr = $('#56').closest("tr"); 
+1

這樣這個人仍然會在HTML上使用重複ID,這對於HTML標準來說是不正確的。 –

1
var tr = $("tr:has('#" + data['id'] + "')"); 

N.B:檢查,在一個頁面的元素都具有唯一的ID。

0

嘗試像

var tr = $('tr:has("td div#"'+data['id']+')'); 
0

你可以用下面的jQuery表達讓你的輸出

$('tr').find('#56').closest('tr') 

還記得ID分配給HTML控件在整個頁面應該是唯一的。

利用上述表達式,你會得到tr對象(與指定的ID的控制即整個TR)

0

第一:是完全無效用相同的ID到更多的一個元素,因爲ID是唯一的。它是一個HTML標準。

但是,如果你想爲你的元素的選擇,你可以使用這個(無需ID):因爲你不需要重複的ID

$('tr.odd').children().children(); 

這是正確的做法。