通过jQuery,是否可以删除页面上所有具有以下模式的DIV,并保留它们的内容?
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">....</div>
请注意,DIV遵循以下模式:
类名始终以
ExternalClass
开头,但后面跟着另一个值,永远不会相同,并且DIV没有任何其他属性,只有
class
。 (这是在SharePoint上)
通过jQuery,是否可以删除页面上所有具有以下模式的DIV,并保留它们的内容?
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">....</div>
类名始终以ExternalClass
开头,但后面跟着另一个值,永远不会相同,
并且DIV没有任何其他属性,只有class
。 (这是在SharePoint上)
$('[class^="ExternalClass"]').filter(function() {
return this.attributes.length === 1;
}). replaceWith(function() {
return $(this).html();
});
replaceWith
在所有匹配的元素上都起作用,因此 each
调用是不必要的。 - Rich O'Kellyreturn this.attributes.length === 1;
上有一个返回呢?再次感谢 :) - Alex$('[class^="ExternalClass"]').replaceWith(function() {
return $(this).html();
});
您可以尝试使用属性开始选择器^=
来实现此操作。
$('div[class^="ExternalClass"]').each(function(){
$(this).replaceWith($(this).html());
});
var $text = "";
$.each($("div"), function(){
$text = $text + this.html();
});
document.write($text);
示例 HTML:
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02F039">foo</div>
<div class="ExternalClass85AC900AB26A481DBDC8ADAE7A02sdfsdsdfF039">bar</div>
示例Jquery:
$('div[class^="ExternalClass"]').each(function() {
$(this).contents().unwrap();
});
输出:
foo bar
(没有div)
这是fiddle:
我的代码:
function unrichText(texto) {
var n = texto.indexOf("\">"); //Finding end of "<div class="ExternalClass...">
var sub = texto.substring(0, n+2); //Adding first char and last two (">)
var tmp = texto.replace(sub, ""); //Removing it
tmp = replaceAll(tmp, "</div>", ""); //Removing last "div"
tmp = replaceAll(tmp, "<p>", ""); //Removing other stuff
tmp = replaceAll(tmp, "</p>", "");
tmp = replaceAll(tmp, " ", "");
return (tmp);
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
获取 div 中的内部 html。 获取父标签或前一个标签,将内容粘贴到其中或在删除 div 后粘贴。 Jquery 可能有一个替换函数,不确定哪个更容易。
应该可以使用 .remove() 来摆脱 div。
$("[class$='ExternalClass']").remove();
可能是 id*= 我忘记了哪一个。
Revised: http://api.jquery.com/replaceWith/
你需要重新编写 HTML。
$("div [class^=ExternalClass]")
将选择元素。
获取 innerHTML,将其附加到元素后面,然后删除该元素。