我试图用jquery删除一些无效的标签/ html,但我认为因为无效的选择器无法找到它。 IE
$("a").find("a").remove();

$(.container p).each(function (index) {
var cont = $(this).html().match(/^(.*?<A[^>]+>.*?)<A[^>]+>.*?(<\/A>.*)$/i);
if (cont) $(this).html(cont[1] + cont[2]);
});
&#13;
没有任何反应,但是如果我将第二个a(无效的一个)更改为一个范围,选择器可以找到并删除它?谢谢
=============================================== =======
更新,我已经采用m69s正则表达式并将其添加到jquery(元素不在DOM中,所以我不能使用getelementbyID)
==
&#13;
答案 0 :(得分:0)
这会删除非法的A元素,但它不会完全恢复合法的A元素,因为浏览器会删除第二个关闭的A标记。因此,链接中的某些文本现在可能会在其后面。 (如果你想避免链接为空,你可以将下一个单词移入其中。)
var elem = document.getElementsByTagName("P");
for (i = 0; i < elem.length; i++) {
var cont = elem[i].innerHTML.match(/^(.*?<A[^>]+>.*?)<A[^>]+>.*?(<\/A>.*)$/i);
if (cont) elem[i].innerHTML = cont[1] + cont[2];
}
<p>A simple text paragraph.</p>
<p>A paragraph with <a href="">a legal <a href="">ILLEGAL LINK</a> link</a> and some more text.</p>
<p>A paragraph with <a href="">a legal link</a> and some more text.</p>
答案 1 :(得分:0)
将文件另存为xhtml,浏览器应为您找到未关闭的标签。我不认为有一种方法可以在javascript中完成。