Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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中的父级_Javascript - Fatal编程技术网

获取容器的内容,包括Javascript中的父级

获取容器的内容,包括Javascript中的父级,javascript,Javascript,我想用父元素本身获取元素的innerHTML。因为我使用的是element.innerHTML,所以它返回的是元素内部的值,而不是父元素。那么在JavaScript中有什么方法可以做到这一点呢 注意:请注意,我不想为此使用任何jQuery。试试- 如果您想要包含父标记的内容- 更新 如果需要具有所有属性的父节点- var content=document.getElementById(“elem”).parentNode.innerHTML; var parentTag=document.ge

我想用父元素本身获取元素的innerHTML。因为我使用的是element.innerHTML,所以它返回的是元素内部的值,而不是父元素。那么在JavaScript中有什么方法可以做到这一点呢

注意:请注意,我不想为此使用任何jQuery。

试试-

如果您想要包含父标记的内容-

更新

如果需要具有所有属性的父节点-

var content=document.getElementById(“elem”).parentNode.innerHTML;
var parentTag=document.getElementById(“elem”).parentNode.tagName.toLowerCase();
var el=document.getElementById(“elem”).parentNode;
变量节点=[],值=[];

对于(var attr,i=0,attrs=el.attributes,l=attrs.length;i我认为您正在查找属性。但由于旧的
Firefox
(版本
11.0
)不支持该属性,您可以使用以下脚本:

var tmpParent = document.createElement('div');
//Appending moves elements from its parents.
//For safety, clone was used instead of original node.
var cloneElem = yourDomElement.cloneNode();
cloneElem.innerHTML = yourDomElement.innerHTML;
tmpParent.appendChild( cloneElem );
//Markup
var elementMarkup = tmpParent.innerHTML;
console.log( elementMarkup );

也许他想要
too@Mageek也许..但从问题上看,这还不太清楚.我正在考虑一种方法.这很复杂,因为如果他写
你的方式将显示
我想他想从id
foo
得到结果,而不是
elem
。(家长的id)。@Mageek让我们等待OP明确他真正想要什么你应该做
document.removeChild(tmpParent)
最后释放内存。@Mageek如果没有这样的子元素,为什么我需要
删除child
!你在哪里看到我将
tmpParent
附加到'visible'dom元素??!!哦,我想你是在附加
var content   = document.getElementById("elem").parentNode.innerHTML;
var parentTag = document.getElementById("elem").parentNode.tagName.toLowerCase();
var content   = document.getElementById("elem").parentNode.innerHTML;
var parentTag = document.getElementById("elem").parentNode.tagName.toLowerCase();

var el = document.getElementById("elem").parentNode;
var nodes=[], values=[];
for (var attr, i=0, attrs=el.attributes, l=attrs.length; i<l; i++){
    attr = attrs.item(i)
    nodes.push(attr.nodeName);
    values.push(attr.nodeValue);
}

var parentAttr  = '<' + parentTag;
for ( var i = 0; i < nodes.length; i++ ) {
    parentAttr += ' ' + nodes[i] + '="' + values[i] + '"';
}
parentAttr += '>' + content + '</' + parentTag + '>';
var tmpParent = document.createElement('div');
//Appending moves elements from its parents.
//For safety, clone was used instead of original node.
var cloneElem = yourDomElement.cloneNode();
cloneElem.innerHTML = yourDomElement.innerHTML;
tmpParent.appendChild( cloneElem );
//Markup
var elementMarkup = tmpParent.innerHTML;
console.log( elementMarkup );