2009-12-10 100 views
0

我有一個頁面,其中包含嵌套div標記的幾個圖層。在8或9的divs內是表格。我如何迭代divs並選擇我想要的特定div,然後遍歷每個div中嵌入的表(一行)中的單元格?這是我想要遍歷的頁面的代表性示例。在嵌套div中迭代表格行

<div id="TheHouseDiv" class="catbox_m"> 
    <div class="Room1Div"> 
    <table width="900" border="0"> 
     <tbody> 
     <tr> 
      <td><a href="/blah/blah1.html">I don't care about this value</a></td> 
      <td><a href="/blah/blah2.html">I WANT THIS VALUE 1!</a></td> 
      <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO 2!</a></td> 
      <td><a href="/blah/blah4.html">Another cell I don't want</a></td> 
      <td><a href="/blah/blah5.html">THIS CELL I WANT ALSO</a></td> 
     <tr> 
     </tbody> 
    </table> 
    <table width="900" border="0"> 
     <tbody> 
     <tr> 
      <td><a href="/blah/blah1.html">Ignore this value in the second table</a></td> 
      <td><a href="/blah/blah2.html">I WANT THIS VALUE</a></td> 
      <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO</a></td> 
      <td><a href="/blah/blah4.html">Ignore this content</a></td> 
      <td><a href="/blah/blah5.html">GET THIS CELL VALUE</a></td> 
     <tr> 
     </tbody> 
    </table> 
    </div> 
    <div class="Room2Div"> 
    <table width="900" border="0"> 
     <tbody> 
     <tr> 
      <td><a href="/blah/blah1.html">I don't care about this value</a></td> 
      <td><a href="/blah/blah2.html">I WANT THIS VALUE 1!</a></td> 
      <td><a href="/blah/blah3.html">I WANT THIS VALUE TOO 2!</a></td> 
      <td><a href="/blah/blah4.html">Another cell I don't want</a></td> 
... 

你明白了。所以每個div和多個div中都有一個表。實際上有8到10個div。沒有任何表格或單元格都有ID,所以我需要在位置上進行引用。但是我不想要所有的單元格和所有的表格。我只想從每個div內的每個表格中的特定單元格獲取值,儘管我希望每個表格都有相同的單元格。我會遍歷這個還是隻參考我想要的特定單元格?如果是,我該如何選擇它們?

+0

文字我想這應該是針鋒相對帶領「參考桌和細胞位置」 – GregH 2009-12-10 23:29:24

+0

任何反饋到我的答案?它不是做你想要的嗎? – jitter 2009-12-12 23:56:17

回答

0
$('#TheHouseDiv div').eq(1).find('table').eq(2).find('tr').eq(3).find('td').eq(4).text() 

有點冗長,但我相信這檢索第四<td>的第二<table>的第三<tr>內從第一<div>包含在#TheHouseDiv文本。

您也可以使用快捷方式.find('tr:first')來匹配第一個。

1

這給你所有你想要的td。 (如果你不明白的選擇只是發表評論,我會解釋它。

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4))") 

例如在循環遍歷href S中<a>標籤內這些td小號

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4)) a") 
    .each(function(i, ele) { 
     alert(ele.href); 
    } 
); 

如以環比<a>標籤內這些td小號

$("div#TheHouseDiv > div > table td:not(:nth-child(1)):not(:nth-child(4)) a") 
    .each(function(i, ele) { 
     alert($(ele).text()); //or ele.innerHTML if no nasty is in the <a> tags 
    } 
); 
+0

即時通訊不太確定,但我認爲「>」只適用於ie,並且:第n孩子也不適用於某些瀏覽器。 – TeKapa 2009-12-11 09:12:27

+2

@TeKapa你是完全錯誤的。 jQuery在JavaScript中處理選擇器,並且不受瀏覽器功能的限制。這就是爲什麼我們使用像jQuery這樣的跨瀏覽器庫,它處理各個瀏覽器的所有怪癖,並保證這個選擇器在每個瀏覽器中的行爲都相同。 – jitter 2009-12-11 09:38:31

+1

請刪除這個評論,這是一個非常具有誤導性的經驗不足的讀者 – jitter 2009-12-11 09:39:15