0

我使用这个 JQuery 来创建一些元素:

var form = $(document.createElement("form"));
form.prop({"action":"/DoSomething", "method": "POST"});
var input = $(document.createElement("input"));
input.prop({"type": "image", "src": "someUrl.png"});
form.append(input);

我现在想获取由所有这些生成的整个 html 字符串:

<form action="/DoSomething" method="POST"><input type="image" src="someUrl.Png" /></form> 

这样我就可以通过其他一些 Javascript 函数来传递它!

然而,这样做form.html()显然只表明了这一点:

<input type="image" src="someUrl.Png" />

那么如何获取所有的 html 呢?

编辑

是的,我可以看到这是重复的,当我第一次写它时,我不知道我想要实现什么,或者至少不知道我想要实现的名称。

4

6 回答 6

1

您可以使用:

form.wrap('<div />').parent().html()

在所有浏览器上工作或

form[0].outerHTML

如果你真的不关心旧的 Firefox 版本 (< 11)

于 2013-09-05T13:31:06.647 回答
0

一种解决方案:

创建一个临时元素,然后clone()append()

$('<div>').append($('#xxx').clone()).html();

在此处查看更多答案:https://stackoverflow.com/questions/5744207/jquery-outer-html

于 2013-09-05T13:22:04.543 回答
0

看看这个

form[0]

你需要它自己没有包装版本的元素,所以只需使用索引 0

于 2013-09-05T13:23:18.457 回答
0
var outer_html = $('selector').clone().wrap('<p>').parent().html();
于 2013-09-05T13:23:57.323 回答
0

您可以简单地使用 DOM 元素,而不是 jQuery 对象,并获得outerHTML...

在您的代码中,它将是...

form[0].outerHTML;

http://jsfiddle.net/6ugyS/1/

于 2013-09-05T13:27:00.527 回答
-1

只需使用表单的包含元素

form.parent().html()
于 2013-09-05T13:20:59.267 回答