2016-06-28 150 views
0

我使用jquery $ .get加载html文件并包装响应。但jQuery删除我的包装。jQuery删除包装元素

我做了以下例子演示了我的问题: https://jsfiddle.net/pwm76bp6/

大家谁不希望打开这个链接是示例代码:

alert($('<div><div>Hallo</div></div>').html()); 

我希望整个字符串应该是警报。这里有什么问题?

+0

可能重复的[获取选定元素的外部HTML](http://stackoverflow.com/questions/2419749/get-selected-elements-outer-html) – str

+0

为什么不提醒''('

Hallo
');'。而且,如果你需要插入HMTL:'的document.getElementById( 'receptor_id')的innerHTML = '
Hallo
';'。 –

回答

0

动态封装一个元素,然后获取包裹元素的html()。

alert($('<div><div>Hallo</div></div>').wrap("<div></div>").parent().html()); 
+0

我想他需要知道为什么它没有在他的工作:) – guradio

2

您需要阅读outerHTML属性。

console.log($('<div><div>Hallo</div></div>').prop('outerHTML'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

它不删除您的包装。 jQuery html()不会返回元素的contents

当你做你$('<div>my content</div>')创建元素,然后你得到的内部HTML与html(),然后在你的例子提醒。

0

使用您的代码,您将获得外部元素<div>html。而外部<div>的内容是<div>Hallo</div>

你可以做你想做一个默认属性是什么:

alert($('<div><div>Hallo</div></div>')[0].outerHTML); 
0

功能“HTML”不会返回给定元素的HTML内容。在你的情况下,“html()”返回外部div的内容,它排除了外部本身。

您可以通过包裹你的HTML像解决这个问题:

var html = '<div><div>Hallo</div></div>'; 
var outerHtml = $(html).wrap('<div />').parent().html(); 

希望这会有所帮助。