2016-08-01 51 views
1

數據是HTML我有:

<form name="myDiv"> 
    <tr> 
    <tr> 
     <td class="myClass">First field1</td> 
     <td class="myClass">Second field1</td> 
     <td class="myClass">Third field1</td> 
    </tr> 
    </tr> 
</form> 
<form name="myDiv"> 
    <tr> 
    <tr> 
     <td class="myClass">First field2</td> 
     <td class="myClass">Second field2</td> 
     <td class="myClass">Third field2</td> 
    </tr> 
    </tr> 
</form> 
<form name="myDiv"> 
    <tr> 
    <tr> 
     <td class="myClass">First field3</td> 
     <td class="myClass">Second field3</td> 
     <td class="myClass">Third field3</td> 
    </tr> 
    </tr> 
</form> 

我想這湊,但不知道該怎麼做。

我在想jQuery和控制檯的輸出,然後弄清楚如何一旦獲得數據就到達外部文件。

我需要的數據,看起來像這樣(或類似的東西,我可以導入在以後階段DB):

First field1,Second field1,Third field1 
First field2,Second field2,Third field2 
First field3,Second field3,Third field3 

我想什麼:

<script type="text/javascript"> 
$(document).ready(function() { 
    $.each($('form[name=myDiv]'), function() { 
     console.log('myDiv:'); 
     $.each($(this).find('.myClass'), function(){ 
      console.log('td data:') 
      console.log($('td').html()) 
     }); 
    }); 
}); 
</script> 

我能得到它日誌myDiv三次,但不知道如何遍歷td後代。

+0

您的HTML無效。您有表格元素,例如div內部的和​​標籤,而不是表格。你也嵌套標籤,我不相信是有效的HTML。你有能力修改這個標記嗎? – Josh

+0

是的,我知道。我把它修剪了一下。真正的版本更糟。 – dbr

+0

它似乎是一個'form'元素問題。我將更新我的代碼,使其更像我的真實代碼。對簡單化過分抱歉。 – dbr

回答

0

使用$(this).text()讓每個td元素文字:

$(document).ready(function() { 
    $('div[name=myDiv]').each(function() { 
     console.log('myDiv:'); 
     $(this).find('.myClass').each(function() { 
      console.log('td data:'); 
      console.log($(this).text()); 
     }); 
    }); 
}); 
+0

我不能讓它記錄'td data:',換句話說它不運行第二個'.each()'。 – dbr

+0

@dbr好吧,你可以嘗試使用代碼的更新版本嗎?謝謝。 – alecxe

+0

還是什麼都沒有,它不記錄'TD數據:' – dbr

0

我已經寫了一些代碼,應該可行,但也更新你的HTML更加語義。 https://jsfiddle.net/Shuaso/234xtacy/1/

HTML:

<table name="myDiv"> 
    <tr> 
    <td class="myClass">A</td> 
    <td class="myClass">B</td> 
    <td class="myClass">C</td> 
    </tr> 
    <tr> 
    <td class="myClass">One</td> 
    <td class="myClass">Two</td> 
    <td class="myClass">Three</td> 
    </tr> 
    <tr> 
    <td class="myClass">Do</td> 
    <td class="myClass">Re</td> 
    <td class="myClass">Mi</td> 
    </tr> 
</table> 

<div id="output"> 

</div> 

的jQuery:

$("tr").each(function() { 
    $("#output").append("<p>") 
    $(this).find("td").each(function() { 
     var content = $(this).text(); 
     $("#output").append(content + ", ") 
    }); 
    $("#output").append("</p>") 
    }); 

我所做的是在表中的每一表行運行的各項功能,然後運行一個嵌套的每個功能將<td>的內容保存到名爲「content」的變量中,然後將該「content」變量打印到表格下方的div(「#output」)中。我還打印出<p>標籤,然後按照您的要求,在每個<td>上運行每個功能,然後關閉</p>標籤,以進行正確的格式化。

+0

這不是我的HTML,我只是刮的數據,原來是雪上加霜。這似乎在jsfiddle工作,所以它應該爲我工作,但我不明白爲什麼它不是。這可能是我簡單的東西也許筆者知道有何\他在做壞的HTML的這種組合使得它更難刮。明天回來,謝謝小提琴。 – dbr