Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery获取此节点的原始html_Jquery_Html - Fatal编程技术网

Jquery获取此节点的原始html

Jquery获取此节点的原始html,jquery,html,Jquery,Html,初始表格完整html是从其他网站提取的 我需要做进一步的处理 当措辞匹配时,我只想获取整个表的html块,以覆盖当前标记内的内容 现在的问题是无法打印出整个表的html块 “标题标题”是动态值。我会不时加入更多的比较标准。如果匹配,那么我将只检索表html,从开始到,除了表标记之外的所有其他html都需要清除 <body> <!-- Additional HTMl code --> <div align="right"> <tab

初始表格完整html是从其他网站提取的

我需要做进一步的处理

当措辞匹配时,我只想获取整个表的html块,以覆盖当前
标记内的内容

现在的问题是无法打印出整个表的html块

“标题标题”是动态值。我会不时加入更多的比较标准。如果匹配,那么我将只检索表html,
从开始到
,除了表标记之外的所有其他html都需要清除

    <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...
    }
  }

标题标题
日期:2011年1月1日
...
$(“*”)。每个(函数(){
if($(this.children().length==0){
if($(this).text()=“标题”){
警报(“匹配”);
警报($(this).closest('table').html());//不工作。。。
}
}

更新2:已测试,正在工作:

更新:等待,缺少开始/结束
标记,正在工作

实际上,您的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);
        }
    }
});
$(“*”)。每个(函数(){
if($(this).children().size()==0){
if($(this).text()=“标题”){
警报(“匹配”);
$(“”)。附件(“正文”);
$(this).最近的('table')。追加到('temp');
数据=$(“#temp”).html();
$(“#temp”).remove();
警报(数据);
}
}
});

诀窍是将表放在一个临时元素中,并读取该元素的html内容。(然后将其删除。)

这将在页面中搜索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());
        }
    })
})

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

恐怕您的问题不清楚。你能解释一下你需要做什么,以及你现在所做的是如何不起作用的吗?基本上,“标题”是动态值。我会不时加入更多的比较标准。如果匹配,那么我将只检索表html(用于其他用途),主体内的所有其他html不需要。因此基本上你是说基于标题,如果它匹配你要查找的内容,那么检索html中所有表的所有html内容,不包括表外的所有内容,对吗?是的。如果标题匹配,那么我将检索该标题所在表的完整html代码。表外的所有其他html代码都可以删除。非常感谢您的div temp代码,而不是看到[object][object],现在我终于能够正确地看到实际输出了。