Jquery获取此节点的原始html

时间:2011-02-04 16:27:19

标签: jquery html

初始表格完整的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...
    }
  }

2 个答案:

答案 0 :(得分:0)

更新2:经过测试,工作:http://jsfiddle.net/inti/t9ysV/1/

更新:等待,缺少开始/结束<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内容。 (然后删除它。)

答案 1 :(得分: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());
        }
    })
})

显然,您需要删除控制台内容。