我有一个html字符串..其中的一些锚标签没有href属性(没有href属性且没有任何值)。我试图从HTML字符串中删除这些标记
示例:
<div class="parsys ReferenceA"><div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="warrantyinfo warrantyinfo_3">
<link rel="stylesheet" href="http://test.com/media/test.css" type="text/css">
<div class="box note warranty-info hidebox">
<p><a name="test" data-cqpath="234492921271682679940756642751399440576;2014296"></a><b>some text</p>
</div>
</div>
</div>
</div>
<div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="warrantyinfo">
<link rel="stylesheet" href="http://test.com/media/test.css" type="text/css">
<div class="box note warranty-info hidebox">
<p><a name="test" data-cqpath="84618115959711848855398939109764576374;2014212"></a>some text</p>
</div>
</div>
</div>
</div>
<div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="warrantyinfo_0 warrantyinfo">
<link rel="stylesheet" href="http://test.com/media/test.css" type="text/css">
<div class="box note warranty-info hidebox">
<p><b>Bsome text<br>
<br>
<b>some text/p>
</div>
</div>
</div>
</div>
<div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="warrantyinfo">
<link rel="stylesheet" href="http://test.com/media/test.css" type="text/css">
<div class="box note warranty-info hidebox">
<p>some text<br>
</p>
</div>
</div>
</div>
</div>
<div class="parbase section reference"><div style="display:inline;" class="cq-dd-paragraph"><div class="warrantyinfo">
<link rel="stylesheet" href="http://test.com/test,css" type="text/css">
<div class="box note warranty-info hidebox">
<p>some text</p>
<p></p>
</div>
</div>
</div>
</div>
</div>
我尝试了以下代码,但没有工作
data是ajax请求返回的html字符串。
var newHtml = $('<div>' + data + '</div>');
newHtml.find("a:not([href])").replaceWith(function() { return this.childNodes; });
var content = newHtml.html();
赞赏任何意见..
更新
添加了示例html。
由于某些原因,空标签根本没有被替换。
如果我检查输出html,我仍然可以看到下面的emppty标签
<p><a name="test" data-cqpath="84618115959711848855398939109764576374;2014212"></a>some text</p>
答案 0 :(得分:0)
您的方法works。
正如David Thomas所说,JQuery已经实现了你在unwrap()所做的事情。
newHtml.find("a:not([href])").contents().unwrap()
,请参阅example。
编辑:我看到编辑提到的空链接问题,但只有unwrap()!你的方法really does work! :)
答案 1 :(得分:-2)
尝试.remove
newHtml.find("a:not([href])").remove();