Javascript 如何在不更改源的情况下返回结果?

Javascript 如何在不更改源的情况下返回结果?,javascript,jquery,html,Javascript,Jquery,Html,我的HTML和JavaScript代码如下所示: <html> <!--... many code ...--> <button onclick="alert($('#mytable').html().wrap('<html/>') );">Show HTML Table</button> <table id="myTable"> <tr's and td's> &l

我的HTML和JavaScript代码如下所示:

<html>
<!--...
many code 
...-->
    <button onclick="alert($('#mytable').html().wrap('<html/>') );">Show HTML Table</button>

    <table id="myTable">

        <tr's and td's>
    </table>
<!--...
many code
...-->
</html>

显示HTML表格

我希望javascript返回由HTML标记包装的表,但我不希望表本身被更改。

为什么不执行以下操作

alert('<html>'+$('#mytable').html()+'</html>');
alert(''+$('#mytable').html()+'';

为什么不做以下事情呢

alert('<html>'+$('#mytable').html()+'</html>');
alert(''+$('#mytable').html()+'';
这将在提供给
wrap
函数的标记中包装表,而不改变
表本身

有关更多信息,请参阅
换行
功能的

这将在提供给
wrap
函数的标记中包装表,而不改变
表本身


有关更多信息,请参阅有关
wrap
功能的信息。

您可以先复制该表:

$('#mytable').clone()...
要获得标签的实际HTML,您需要类似于我发布的插件的内容:

(函数($){
$.fn.outerhtml=函数(){
返回$('').append(this.clone()).html();
};
})(jQuery);
因此,您可以执行以下操作:

alert('<html>' + $('#myTable').outerhtml() + '</html>');
alert('+$('#myTable').outerhtml()+'');

请参阅以获取工作演示。

您可以先复制该表:

$('#mytable').clone()...
要获得标签的实际HTML,您需要类似于我发布的插件的内容:

(函数($){
$.fn.outerhtml=函数(){
返回$('').append(this.clone()).html();
};
})(jQuery);
因此,您可以执行以下操作:

alert('<html>' + $('#myTable').outerhtml() + '</html>');
alert('+$('#myTable').outerhtml()+'');

请参阅以获得一个有效的演示。

也许这会对您有所帮助。它将为您提供表的代码,包括所附的
标记。您可以执行类似于
警报(“+$(“#myTable”).outerHtml()+”)
的操作,这可能会对您有所帮助。它将为您提供表的代码,包括所附的
标记。您可以执行类似于
警报(“+$(“#myTable”).outerHtml()+”)
的操作,但这不起作用
.html()
返回字符串,而不是jQuery对象。因此,您不能对其调用
wrap

另一个问题是
.html()

您可以
.clone()
节点,将其附加到某个虚拟元素,然后返回
.html()

var html=['',
$('').append($('#mytable').clone()).html(),
'')。加入('');

这不起作用
.html()
返回字符串,而不是jQuery对象。因此,您不能对其调用
wrap

另一个问题是
.html()

您可以
.clone()
节点,将其附加到某个虚拟元素,然后返回
.html()

var html=['',
$('').append($('#mytable').clone()).html(),
'')。加入('');

“我不希望表本身被更改。”您的意思是“更改了”吗?我的意思是通过wrap元素(在这种情况下是html)进行更改。是的,我看到html().wrap不起作用,但我的意思是我想包装表的html代码(从到)。“我不想改变表本身。”你说的“改变”是什么意思?我指的是通过wrap元素(在这种情况下是html)改变的。是的,我看到html().wrap不起作用,但我的意思是我想包装表的html代码(从到)。html的问题是它不返回表定义,只是它的内部。html的问题是它不返回表定义,只是它的内部
html()
返回字符串
.wrap()
对字符串不起作用。@Felix是的,对-我只是在复制OP的代码。同时
.html()
也不会显示包含的标记。嗯。
html()
返回一个字符串
.wrap()
对字符串不起作用。@Felix是的,对-我只是在复制OP的代码。同时
.html()
也不会显示包含的标记。嗯。好的,它确实起作用了,但最后我认为clone()函数是不必要的,因为#mytable没有被这个操作修改。@ruffp:如果调用
.append
,那么传递给它的元素将从当前位置删除并添加到新位置。因此,如果您不克隆该表,该表将从页面中删除。好的,它可以做到这一点,但最后我认为克隆()函数不是必需的,因为此操作不会修改#mytable。@ruff:如果调用
.append
,则传递给它的元素将从当前位置删除并添加到新位置。因此,如果不克隆该表,该表将从页面中删除。