仅使用jquery将html注入第一个元素而不是其子元素

时间:2016-08-10 17:21:53

标签: jquery html wordpress

与jquery有点问题。 我有这个HTML:

<li class="order">
    Order
    <strong>$order->id</strong>
</li>

我想改变&#34;秩序&#34;到&#34;最后的订单&#34; (这个html来自一个插件,如果我从插件目录中更改它,更改将不会在下次更新时保存。)

所以我决定用jquery html()函数来改变它。但是,如果我这样做

$('.order').html('Last order');

结果是:

<li class="order">
    Last order
</li>

但我不想删除$ order-&gt; id,因为它是动态内容。 我的问题是,是否可以用strong标签或其他东西排除它? 像

这样的东西
$('.orde:not(strong)').html("Last order");

提前致谢!

1 个答案:

答案 0 :(得分:1)

如何隔离孩子,包括新文本,然后再次附加孩子。

注意.clone()无关紧要,因为您没有更换孩子;

var temp = $('.order').clone().children();
var new_text = "Last Order";
$('.order').html(new_text);
temp.appendTo($('.order'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="order">
    Order
    <strong>$order->id</strong>
</li>

您也可以隔离该元素,这是更明智的:

 var el = $('.order')
    var temp = el.clone().children();
    var new_text = "Last Order";
    el.html(new_text);
    temp.appendTo(el);

如果你想要一个简单的功能:

function change_text(el, new_text){
    var temp = el.clone().children();
    el.html(new_text);
    temp.appendTo(el);
}