Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.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
Javascript 获取外部元素的html_Javascript_Html_Dom - Fatal编程技术网

Javascript 获取外部元素的html

Javascript 获取外部元素的html,javascript,html,dom,Javascript,Html,Dom,我有如下的要点 <div id="features" class="feature" data-id="1"> <a href="http://www.google.com></a> <img src="/sample.jpg"> <p> Sample content </p> </div> <div id="features" class="feature" data-id="

我有如下的要点

 <div id="features" class="feature" data-id="1">
   <a href="http://www.google.com></a>
   <img src="/sample.jpg">
   <p> Sample content </p>
 </div>
  <div id="features" class="feature" data-id="1"></div>

样本含量

我希望得到div的外部html,而不包含内部子项,如下所示

 <div id="features" class="feature" data-id="1">
   <a href="http://www.google.com></a>
   <img src="/sample.jpg">
   <p> Sample content </p>
 </div>
  <div id="features" class="feature" data-id="1"></div>


没有jquery我怎么做?

可能是更好的方法。。但你可以这么做

var node = features.cloneNode(); // clone your element
node.innerHTML = ''; // empty the cloned version
console.log(node.outerHTML); // ouput

可能是更好的方式。。但你可以这么做

var node = features.cloneNode(); // clone your element
node.innerHTML = ''; // empty the cloned version
console.log(node.outerHTML); // ouput

不影响页面的最简单方法(即实际删除所有子项)是

var featuresEl = document.getElementById('features');
var clonedEl = featuresEl.cloneNode(false); //False to not clone children
console.log(clonedEl.outerHTML); //Returns what you wanted, without inners

不影响页面的最简单方法(即实际删除所有子项)是

var featuresEl = document.getElementById('features');
var clonedEl = featuresEl.cloneNode(false); //False to not clone children
console.log(clonedEl.outerHTML); //Returns what you wanted, without inners

要仅获取元素而不获取任何子元素,请尝试获取整个html并删除所有子元素:

$('#features')[0].outerHTML.replace( $('#features')[0].innerHTML,'')

bye

要仅获取元素而不获取任何子元素,请尝试获取整个html并删除所有子元素:

$('#features')[0].outerHTML.replace( $('#features')[0].innerHTML,'')

拜拜

您可以使用:-
document.getElementById(id).cloneNode(false).outerHTML
您可以使用:-
document.getElementById(id).cloneNode(false).outerHTML
是否在所有浏览器中都受支持?它一直支持到IE4.0。(是的,所有浏览器)好的。为什么我们需要在outerHTML之前进行克隆?因为如果不进行克隆,并且从实际节点中清除子节点,那么实际元素将从实际页面中删除。您可以在演示中看到,您得到了HTML,但元素也消失了。除非你一次完成10000多个,否则我怀疑你会感觉到什么。所有浏览器都支持
outerHTML
吗?它一直支持到IE4.0。(是的,所有浏览器)好的。为什么我们需要在outerHTML之前进行克隆?因为如果不进行克隆,并且从实际节点中清除子节点,那么实际元素将从实际页面中删除。您可以在演示中看到,您得到了HTML,但元素也消失了。除非你一次做超过10000个,否则我怀疑你会感觉到什么。