2011-12-03 6 views
0

これは私のために働いていません。jQuery.replace複数の要素はありますか?

$('<span>Something</span><span>Something else</span>').replaceAll('<span>Something New</span><span>Something New Too</span>'); 

私は1つの要素よりも多くを交換するにはどうすればよいですか?助けてください。

要素はDOM上にあるため、追加することはできません。

+1

DOMからこれらの要素を選択しようとしていますか?それとも実際にそれらを作成することを意味しますか? jQueryの '$'には、多くの異なる振る舞いが(おそらくあまりにも多く)オーバーロードされています。 – RightSaidFred

+0

DOMからそれらを選択します。 –

+0

これで 'replaceAll'をやりたくないかもしれません。これらの要素をDOMから選択してテキストコンテンツを更新する方がよいでしょう。 – RightSaidFred

答えて

0
$('<span>Something</span><span>Something else</span>') 
    .appendTo("body") 
    .each(function(){ 
     $(this).replaceWith("<span>Something New</span>"); 
    }); 

Example

spanを本文に追加し、それぞれを「新しいもの」spanに置き換えています。

+0

良いアイデアだが、要素はすでにページにあり、追加することはできません。 –

+0

次に '$(" span ")を実行してください。each(function(){...});' – Purag

0

あなたはそれを逆にしています。それは行く

$(/*New stuff*/).replaceAll(/*The items you're matching against*/); 
0

要素がDOMにあるので、それらを選択し、内容を更新する必要があります。

完全に置き換えることはできますが、実際には同じ要素タイプで置き換える必要はありません。

<span>Something</span> 
<span>Something else</span> 

JS

$('span').text(function(i,txt) { 
    if(i === 0) { 
     return "Something new"; 
    } else if(i === 1) { 
     return "Something new too"; 
    } else { 
     return txt; 
    } 
}); 

HTMLはそれを行うには、いくつかの異なる方法がありますが、ここでは1です。見つかった最初の2つのスパンの内容を更新します。

適切な解決方法を知るには、質問に詳細を入力する必要があります。

関連する問題