2011-02-04 48 views
0

初始表格完整html是從其他網站提取的。Jquery獲取此節點的原始html

我需要爲它做進一步的處理。

當語句匹配時,我只想獲取整個表格的html塊,以覆蓋當前<body>標記內的內容。

現在的問題是無法打印出整個表格的html塊。

'標題標題'是動態值。我會不時添加更多的比較標準。如果匹配,那麼我將只檢索表html,starting from <table> to </table>,所有其他htmls在body標籤內但在表標籤之外需要消除。

<body> 
    <!-- Additional HTMl code --> 
    <div align="right"> 
    <table width="100" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
     <td height="30" valign="top"><strong>Header Title</strong></td> 
     </tr> 
     <tr> 
     <td height="32" valign="top">Date : <strong>01/01/2011 </strong> <br></td> 
     </tr> 
     <tr> 
     ... 
     </tr> 
    </table> 
    <!-- Additional HTMl code --> 
    </div> 
</body> 
$("*").each(function() { 
    if($(this).children().length==0){ 
    if($(this).text()=="Header Title"){ 
     alert('match'); 
     alert($(this).closest('table').html()); //not working... 
    } 
    } 
+0

恐怕你的問題還不清楚。你能解釋一下你需要做什麼,以及你現在正在做什麼不工作? – 2011-02-04 16:31:42

+0

基本上'標題標題'是動態值。 我會不時添加更多比較標準。 如果匹配,那麼我只會檢索表html(對於其他用法),其他所有htmls在body內都不需要。 – 2011-02-04 16:43:25

回答

0

更新2:測試工作:http://jsfiddle.net/inti/t9ysV/1/

UPDATE:等待,錯過開始/結束<table>標籤,工作正在進行中...

Acually你的JavaScript(壽失蹤});)的確如此:

$("*").each(function() { 
    if ($(this).children().size() == 0) { 
     if ($(this).text() == "Header Title") { 
      alert('match'); 
      $("<div id='temp' />").appendTo("body"); 
      $(this).closest('table').appendTo("#temp"); 
      data = $("#temp").html(); 
      $("#temp").remove(); 
      alert(data); 
     } 
    } 
}); 

訣竅是把表放在一個臨時元素中,並讀取該元素的html內容。 (然後將其刪除)

0

這將在頁面中搜索div中的表並查找第一行的內容。如果它是匹配的,它將返回完整的表格。它會爲頁面中的許多表執行此操作。

$(function(){ 
    var t = $("div table"); 
    $(t).each(function(){ 
     if($(this).find("tr:first-child").text().trim() == "Header Title Match") { 
      console.debug($(this).parent("div").html()); 
     } 
    }) 
}) 

很明顯,你需要刪除控制檯的東西。