如果我有这样的文字;
<p> </p>
<p>this is the real text</p>
<p> </p>
<p>more</p>
Run Code Online (Sandbox Code Playgroud)
我需要的是一个jQuery,它将替换只有<p> </p>'' 的第一个实例.
所以调用后的结果应该是;
<p>this is the real text</p>
<p> </p>
<p>more</p>
Run Code Online (Sandbox Code Playgroud)
但如果第一行不是<p> </p>那么呼叫应该什么都不做.
编辑
我试过从@Joey C实现解决方案,但我无法让它工作.删除只是没有.
var myHtml = "<p>abc</p><p>next para</p>";
var newElement = $(myHtml);
if ($(newElement).first("p").text() == "abc") {
$(newElement).first("p").remove();
}
alert($(myHtml).text());
Run Code Online (Sandbox Code Playgroud)
下面找到ap元素的第一个实例,如果它的html等于 你指定的" ",则将它从DOM中删除.
if ($("p:first").html() == " ")
$("p:first").remove();
Run Code Online (Sandbox Code Playgroud)
如果html作为字符串存储在变量myHTML中,则可以创建DOM元素并执行类似的比较.在测试中,我发现如果使用div包装正在创建的元素,它会更好:
var myHtml = "<p>abc</p><p>next para</p>";
var newElement = $("<div>" + myHtml + "</div>");
if (newElement).find("p:first").text() == "abc") {
newElement.find("p:first").remove();
}
alert(newElement.html());
Run Code Online (Sandbox Code Playgroud)
这实际上不会更新包含原始html代码的字符串,因此如果您仍然需要该变量,则必须重新分配它.
myHTML = newElement.html();
Run Code Online (Sandbox Code Playgroud)