简体   繁体   English

如何使用Javascript或ExtJs删除HTML块中没有属性的span标签

[英]How to remove span tag which has no attribute in a HTML block using Javascript or ExtJs

using Javascript, I am trying to remove span tags within HTML content which has no attribute, but have not found a solution yet.使用 Javascript,我试图删除没有属性但尚未找到解决方案的 HTML 内容中的 span 标签。

for example, if a html content is例如,如果一个 html 内容是

<p>
<span>
<span class="asset">&nbsp;</span>
<iframe title="title" id="dynamicid" src="https://example.com/asset/externalasset.html" style="width: 100px; height: 30px;">&nbsp;</iframe>
</span>
</p>

expected result is,预期的结果是,

<p>
<span class="asset">&nbsp;</span>
<iframe title="title" id="dynamicid" src="https://example.com/asset/externalasset.html" style="width: 100px; height: 30px;">&nbsp;</iframe>
</p>

Try this:尝试这个:
This has only one problem: The span must be the last child of its parent, but for your example it might work:这只有一个问题:跨度必须是其父级的最后一个子级,但对于您的示例,它可能有效:

The changes cannot be seen without displaying the innerHTML of the p (as I've done below on the 2nd snippet) or inspect ing the result.如果不显示p的innerHTML(正如我在下面的第二个片段中所做的那样)或inspect结果,则无法看到更改。

 let spans = document.querySelectorAll("span"); for (let i = 0; i < spans.length; i++) { let span = spans[i], ih, p; if (span.hasAttributes() === false) { ih = span.innerHTML; p = span.parentNode; p.removeChild(span) p.innerHTML += ih; } }
 <p> <span> <span class="asset">&nbsp;</span> <iframe title="title" id="dynamicid" src="https://example.com/asset/externalasset.html" style="width: 100px; height: 30px;">&nbsp;</iframe> </span> </p>

Here is an example of console.log ing it:这是console.log一个例子:

 let spans = document.querySelectorAll("span"), arr = []; for (let i = 0; i < spans.length; i++) { let span = spans[i], ih, p; if (span.hasAttributes() === false) { ih = span.innerHTML; p = span.parentNode; p.removeChild(span) p.innerHTML += ih; arr.push(p); //added to console.log the innerHTML of the parent } } //console.log the parents' innerHTML for (let j = 0; j < arr.length; j++) { ih = arr[j].innerHTML; console.log(ih); }
 <p> <span> <span class="asset">&nbsp;</span> <iframe title="title" id="dynamicid" src="https://example.com/asset/externalasset.html" style="width: 100px; height: 30px;">&nbsp;</iframe> </span> </p>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM