从字符串开始删除javascript中的父节点

从字符串开始删除javascript中的父节点,javascript,Javascript,我需要解析一个字符串。字符串是来自adserver的回调,这是格式 <div style="background-color: yellow"> <div> <div style="left: 10px; width: 100%; height: 0px; position: relative; padding-bottom: 80%;"><iframe allowfullscreen="" frameborder="0" src="https://ww

我需要解析一个字符串。字符串是来自adserver的回调,这是格式

<div style="background-color: yellow">
<div>
<div style="left: 10px; width: 100%; height: 0px; position: relative; padding-bottom: 80%;"><iframe allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/5DkrwfY2jw4" style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"></iframe></div>
</div>
</div>

但是我找不到一种方法来检查属性是否存在,如果为真,则删除保留子节点的父节点。

div本身不应该是问题,因此如果其原始背景颜色为黄色,您可以将背景设置为透明:

var s = `<div style="background-color: yellow">
<div>
<div style="left: 10px; width: 100%; height: 0px; position: relative; padding-bottom: 80%;"><iframe allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/5DkrwfY2jw4" style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"></iframe></div>
</div>
</div>` 
var div = document.createElement('div');
div.innerHTML = s; // replace with response...
if (div.childNodes[0].style.backgroundColor == 'yellow') div.childNodes[0].style.backgroundColor = 'transparent'
document.body.appendChild(div);
var s=`
` 
var div=document.createElement('div');
div.innerHTML=s;//替换为响应。。。
如果(div.childNodes[0].style.backgroundColor='yellow')div.childNodes[0].style.backgroundColor='transparent'
文件.正文.附件(div);

div本身应该没有问题,因此,如果原始背景颜色为黄色,您可以将背景设置为透明:

var s = `<div style="background-color: yellow">
<div>
<div style="left: 10px; width: 100%; height: 0px; position: relative; padding-bottom: 80%;"><iframe allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/5DkrwfY2jw4" style="top: 0px; left: 0px; width: 100%; height: 100%; position: absolute;"></iframe></div>
</div>
</div>` 
var div = document.createElement('div');
div.innerHTML = s; // replace with response...
if (div.childNodes[0].style.backgroundColor == 'yellow') div.childNodes[0].style.backgroundColor = 'transparent'
document.body.appendChild(div);
var s=`
` 
var div=document.createElement('div');
div.innerHTML=s;//替换为响应。。。
如果(div.childNodes[0].style.backgroundColor='yellow')div.childNodes[0].style.backgroundColor='transparent'
文件.正文.附件(div);

您可以迭代子节点并检查div是否具有特定的样式

函数检查和出现(节点){
用于(节点中的节点){
if(nodes.hasOwnProperty(node))
if(nodes[node].getAttribute(“样式”)=“背景色:黄色”)
{
if(nodes[node].childNodes[0].nodeType==3)//某些浏览器将换行符解释为第一个子项
document.querySelector(“body”).appendChild(节点[node].childNodes[1]);
其他的
document.querySelector(“body”).appendChild(节点[node].childNodes[0]);
}
其他的
{
document.querySelector(“body”).appendChild(nodes[node]);
}
}
}
var div=document.createElement('div');
div.innerHTML=“”

checkandAppend(div.childNodes)您可以迭代子节点并检查div是否具有特定的样式

函数检查和出现(节点){
用于(节点中的节点){
if(nodes.hasOwnProperty(node))
if(nodes[node].getAttribute(“样式”)=“背景色:黄色”)
{
if(nodes[node].childNodes[0].nodeType==3)//某些浏览器将换行符解释为第一个子项
document.querySelector(“body”).appendChild(节点[node].childNodes[1]);
其他的
document.querySelector(“body”).appendChild(节点[node].childNodes[0]);
}
其他的
{
document.querySelector(“body”).appendChild(nodes[node]);
}
}
}
var div=document.createElement('div');
div.innerHTML=“”

checkandAppend(div.childNodes)由于样式是内联设置的,您只需读取div的style属性。创建一个div,插入HTML,然后检查第一个div。我想您希望将其插入文档中,因此如果第一个div已设置为黄色,请在文档中插入其第一个div子节点(即树中的第二个)。否则,请插入第一个div

这种方法并不健壮,但是如果没有关于如何选择div的更多信息,或者选择后如何处理div的更多信息,那么您就无能为力了

我用一些文本替换了iFrame,我认为它与答案无关

var响应='iframe';
var div=document.createElement('div');
div.innerHTML=响应;
var divs=div.getElementsByTagName('div');
if(divs[0].style.backgroundColor==“黄色”){
文件.正文.附件(divs[1]);
}否则{
document.body.appendChild(divs[0]);

}
由于样式是内联设置的,您只需读取div的style属性。创建一个div,插入HTML,然后检查第一个div。我想您希望将其插入文档中,因此如果第一个div已设置为黄色,请在文档中插入其第一个div子节点(即树中的第二个)。否则,请插入第一个div

这种方法并不健壮,但是如果没有关于如何选择div的更多信息,或者选择后如何处理div的更多信息,那么您就无能为力了

我用一些文本替换了iFrame,我认为它与答案无关

var响应='iframe';
var div=document.createElement('div');
div.innerHTML=响应;
var divs=div.getElementsByTagName('div');
if(divs[0].style.backgroundColor==“黄色”){
文件.正文.附件(divs[1]);
}否则{
document.body.appendChild(divs[0]);

}
这只是为了改变背景色吗?您应该能够通过使用类似以下内容来获得背景色:
someDiv=document.getElementById(“id\u of\u div”);//或者根据代码someDiv.getAttribute('style');//这应该返回背景色:黄色
,要删除黄色的div,请尝试类似于
div.innerHTML=a.response.html.innerHTML
只是关于更改背景色吗?您应该能够通过使用类似于:
someDiv=document.getElementById(“id\u of_div”);//或者根据代码someDiv.getAttribute('style');//这应该返回背景色:黄色
,要删除黄色的div,请尝试类似于
div.innerHTML=a.response.html.innerHTML非常感谢,问题是有时背景颜色没有定义。所以我还要检查是否定义了。非常感谢,问题是有时候背景颜色没有定义。所以我还要检查是否定义了。