2009-11-04 118 views
11

我想在我的一個表的td中選擇一個元素,但我不太瞭解這個語法。 這是我的嘗試:JQuery在td中選擇一個元素

$("table > td:#box") 

這是我的表結構的一個樣本:

<div id="main"> 
<div id="today"> 
    <table id="list" width="100%" cellpadding="4" cellspacing="0" border="0" style="font-size: 10px; border-collapse:collapse;"> 
    <tr id="109008"> 
    <td class="tdstd"> 
    <a class="box" href="link"></a> 
    </td> 

或Chrome瀏覽器的DOM Inspector:

alt text

+0

請發佈相關的一段HTML代碼,並告訴你想要的部分完全脫離它。 – BalusC 2009-11-04 21:57:23

+0

也許你可以用表格和元素顯示一段HTML代碼。該元素是一個ID爲「盒子」的div嗎? – 2009-11-04 21:57:47

+0

你需要什麼 - 你有文字,你想得到「文本」或「ID」? – cupakob 2009-11-04 21:59:29

回答

17

好了,「#box 「意味着一個ID爲」box「的DOM對象,因爲它是唯一的ID。您可以直接選擇那一個。但是你的代碼表明你有幾個元素需要更改id「box」。你應該一類分配給你的元素在TD裏面,或者如果它是唯一由是唯一的DIV或SPAN在框中,你可以這樣訪問:

$("table td .box") 

注意「>」選擇意味着, TD必須是TABLE的直接子代,我假設你至少有一個TR級別,所以這也不起作用。我上面的例子將任何TD中的每個元素都與類「box」相匹配,這是任何TABLE的子元素。

很顯然,我會設置一個類放在桌子上的好,用這樣的事情:

$("table.boxes td .box") 

只要你不小心,你希望在工作範圍之外的事情,選擇


您現在已經添加HTML所以我編輯我的回答:

$("table#list a.box") 
+2

+1,但是他已經在表格上有一個id,無論如何它的效率要高得多 - $('#list td a.box')是這裏的「正確」解決方案 – annakata 2009-11-04 22:07:18

+0

正確,但是我通常在進行分層選擇時使用標籤名稱,以便我可以看到我選擇的頁面的哪一部分。如果id是「tablelist」,我不會有,但「list」是如此普遍,所以我可能會困惑,如果我的jQuery代碼將運行很長時間。但所有這一切說,你顯然是正確的:) – Sandman 2009-11-04 22:12:06

1
$("table tr td .box") 

應該這樣做。

-2

我不知道,但我認爲,你需要$("td#box") ......

+1

這是不正確的 - #意味着ID選擇器,並沒有與「盒」的ID IDEM更不用說td與這樣的 – annakata 2009-11-04 22:05:48

+0

在開始時postet只有這個$( 「table> td:#box」)而不是代碼的和平:) – cupakob 2009-11-04 22:08:46

+0

是啊我注意到了 - 這就是爲什麼我沒有downvote你,只是評論:) – annakata 2009-11-04 22:11:31

0

這個選擇......

table td a.box 

告訴jQuery來找到a標籤與包含class屬性「框」。此a標記必須位於table內的td之內。

9

最有效的選擇應該是:

$('#list').find('a.box'); 

或:

$('a.box', $('#list')[0]); 

通過選擇表id首先,你必須設置你的範圍只是表,然後你可以搜索元素你需要在該表中。

第二個選擇器是一樣的,你正在選擇的東西,你是範圍作爲第二個參數。

閱讀第一張照片比較容易。