我有一个html字符串..其中的一些锚标签没有href属性(没有href属性和没有任何价值)。我试图从HTML字符串中删除这些标签找到不包含href属性的锚标记的最佳方法?
例子:
<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>
我尝试下面的代码,但没有奏效
数据是一个HTML字符串在AJAX请求返回。
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>
我想不出更简单的方法来找到没有'href'的''元素,但它看起来像是采取了一种比需要更复杂的方法来实现['unwrap()' ](http://api.jquery.com/unwrap/)。 – 2014-11-25 00:17:42
你能举一个简单的例子来说明你的'data'变量是什么吗?因为*看起来像它应该工作,但显然“没有”,这是你遇到的问题的一个非常模糊的描述。你能更彻底一点吗? – 2014-11-25 00:23:04
您发布的代码有效。顺便说一句,历史上''被用来导航到页面的一部分。在HTML5中,这是通过id完成的。在html5中没有A标签的名称属性,因此您可能需要用''替换为'' – 2014-11-25 00:45:11