2012-02-15 5 views
1

replaceWithは、次のコードで使用されているようにターゲットコンテンツを1回だけ変更します。他のオブジェクトを送信した場合、アラートには適切な値が表示されますが、divは表示されません。"replaceWith"は内容を変更しません

function identify (thisobj) { 
     alert(thisobj.value); 
     $("#test").replaceWith(thisobj.value); 
    } 

対象要素を以下に示します。

<div id="canvas_container"> 
     <div id="test">This is a test</div> 
    </div> 

ここでは、さまざまなオブジェクトがそれぞれ異なる値で渡されています。しかしAlert()が適切な内容を反映しているにもかかわらず、#Testは1回限りの変更を許可し、その値を永遠に保持します。

+0

は助け – DKean

答えて

1

replaceWith#test要素を取り除き、あなたは(thisobj.value)設定したものに置き換えを使用する必要があります。

要素のの内容をに置き換えるには、.html()(または.text())を使用してください。

function identify (thisobj) { 
    alert(thisobj.value); 
    $("#test").html(thisobj.value); 
} 
2

#testを新しい要素に置き換えます。あなたがそれを置き換える要素もそのセレクタにマッチしない限り、再び動作しません。 jQuery docsから

.replaceWith()メソッドは、DOMからコンテンツを削除し、単一の呼び出しと、その場所に新しい コンテンツを挿入します。

あなたが#test要素を維持したいと仮定すると、あなたが内容を置き換えるためにhtmlメソッドを使用することができ、それの、むしろ要素自体より。

+0

@DennisKeanありがとうございました - あなただけのテキストを置換したい場合'#test'では、私の答え(と他の答え)で述べた' text'メソッドや 'html'メソッドを使うことができます。 –

2

.replaceWith()は、DOMノード全体を置き換えます。あなたは.html(thisobj.value)または.text(thisobj.value)

0

jQueryのtext()関数を調べましたか?

$("#test").html(thisobj.value); 
1

replaceWithは#test、使用中にコンテンツを置き換えるために、全体の要素を交換します交換で助けるかもしれません呼び出し元の要素が置き換えられます。したがって、最初の使用後には、要素#testはもう存在しません。

あなたはtextまたは多分htmlをしたい:

$("#test").text(thisobj.value); 

あなたの値は、HTML、使用が含まれている場合:

$("#test").html(thisobj.value); 
関連する問題