为什么jQuery在解析html字符串时会丢弃div

时间:2014-09-29 05:37:10

标签: jquery

如此simple jsfiddle所示,以下代码输出<p>I am inner content</p>,但似乎删除了div标记。我错过了什么?

var x = $('<div id="#testing"><p>I am inner content</p></div>');
alert(x.html());

2 个答案:

答案 0 :(得分:3)

因为.html()会返回x的innerHTML。

  

获取匹配集中第一个元素的HTML内容   元素或设置每个匹配元素的HTML内容。

您需要获得outerHTML

&#13;
&#13;
var log = (function() {
  var $log = $('#log');
  return function(msg) {
    $('<p/>', {
      text: msg
    }).prependTo($log)
  }
})();

var x = $('<div id="#testing"><p>I am inner content</p></div>');
log(x.prop('outerHTML'));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="log"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

试试这个fiddle

var x = $('<div id="#testing"><p>I am inner content</p></div>');
alert(x.prop('outerHTML'));

outerHTML类似于innerHTML,它是一个元素属性 包括打开结束标签以及内容。