从JS注入的HTML中删除元素

时间:2017-12-21 12:41:18

标签: javascript jquery

为什么这不起作用?

$description = '<div class="description"><p>This is a <a href="#">test</a></p></div>';
$($description).find('a').parent()[0].remove();
$('body').append($description);

我正在使用append注入一些HTML,但在此之前我想检查HTML的链接,如果它存在,我想删除它的父级(往往是段落)。

这似乎不起作用?有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

这似乎不起作用?有什么想法吗?

删除[0],因为parent()将为您提供一个jquery元素,而[0]将为您提供没有remove()方法的纯DOM元素。

此外,您需要存储要操作的jquery元素的引用。

var description = '<div class="description">Out of P<p>This is a <a href="#">test</a></p></div>';
var $description = $( description );
$description.find('a').parent().remove();
$( 'body' ).append( $description );

<强>演示

&#13;
&#13;
var description = '<div class="description">Out of P<p>This is a <a href="#">test</a></p></div>';
var $description = $( description );
$description.find('a').parent().remove();
$( 'body' ).append( $description );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;