2016-08-10 8 views
0

jqueryに少し問題があります。 「ラストオーダー」(このHTMLは、プラグインから来ていると私はプラグインディレクトリから、それを変更した場合、変更はで保存されることはありませんへ子要素ではなく最初の要素にのみjqueryでhtmlを注入

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

そして、私は「順序」を変更したい: 私はこのHTMLを持っています次の更新)。

jquery html()機能で変更することにしました。

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

しかし、それは動的なコンテンツですので、私は、また$ order-> IDを削除する必要はありません。しかし、私は

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

をすれば、結果があります。 strongタグなどで除外する方法があるのですか?事前に

$('.orde:not(strong)').html("Last order"); 

おかげのような 何か!

+0

[子要素を変更せずに要素のテキストを変更するにはどうすればよいですか?](http://stackoverflow.com/questions/4106809/how-can-i-change-an-elements-text-without-子要素の変更) – insertusernamehere

答えて

1

新しいテキストを含む子を隔離してから、子をもう一度追加するのはどうですか?

注:.clone()は子供を変更していないので意味がありません。このため、単純な機能をしたい場合は

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

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>


また、より賢明だろう要素を、分離することができ

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

最初のものと一緒に行って、うまくいきます! – Avishay28

関連する問題