gpt4 book ai didi

javascript - 如何在 iPhone UIWebView 中使用 JavaScript 从 html 中删除标签

转载 作者:行者123 更新时间:2023-11-28 10:08:40 25 4
gpt4 key购买 nike

伙计们,我有一个如下所示的 html 字符串;

<html>
<head><title></title></head>
<body>i wanna remove <span name="Note">this</span> tag</body>
</html>

我使用这个 JavaScript 代码:

NSString *str = @"function f(){
var nodes = document.getElementsByName('Note');
alert(nodes.length); // it returns node count correctly
for(var i = nodes.length - 1;i >= 0;i--){
var node = nodes[i];
if (node){
node.parentNode.removeChild(node);
}
}
}f();";

[UIWebView stringByEvaluatingJavaScriptFromString:str];

结果是:

<html>
<head><title></title></head>
<body>i wanna remove tag</body>
</html>

如何仅删除标签?

最佳答案

你可以尝试:

NSString *str = @"function f(){
var doc = document;
var nodes = doc.getElementsByClassName('Note');
alert(nodes.length); // it returns node count correctly
for(var i = nodes.length - 1;i >= 0;i--){
var node = nodes[i];
if (node){
//node.parentNode.removeChild(node);
node.parentNode.replaceChild(doc.createTextNode(node.innerHTML), node);
}
}
}f();";

但是如果你有像<span class="Note">foo<span>bar</span></span>这样的嵌套标签,这会导致奇怪的结果如果删除类就足够了,我猜你可以这样做:

NSString *str = @"function f(){
var doc = document;
var nodes = doc.getElementsByClassName('Note');
alert(nodes.length); // it returns node count correctly
for(var i = nodes.length - 1;i >= 0;i--){
var node = nodes[i];
if (node){
//node.parentNode.removeChild(node);
node.className = '';
}
}
}f();";

编辑:

NSString *str = @"function f(){
var doc = document;
var aux = doc.createElement('span');
//alert(nodes.length); // it returns node count correctly
for(var nodes = doc.getElementsByClassName('Note'); nodes && (nodes.length > 0); doc.getElementsByClassName('Note')){
var node = nodes[0];
if (node){
aux.innerHTML = node.innerHTML;
for (var el = aux.firstChild, next = el.nextSibling; el; el = next, next = next ? next.nextSibling : null){
var tmp = node.parentNode.insertBefore(el, node);
}
node.parentNode.removeChild(node);
}
}
}f();";

关于javascript - 如何在 iPhone UIWebView 中使用 JavaScript 从 html 中删除标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com