2011-07-12 5 views
0

jqueryイベントのjsonプロパティの値を動的に変更してブラウザにロードする方法を知りたい。ここにjsonのサンプルがあります。イベントのjsonプロパティを変更するにはどうすればよいですか?

var spiderman = { 
    "fname" : "Peter", 
    "lname" : "Parker", 
    "nick" : "Spidey" 
} 

、ここではイベントだ、のは言わせて...クリックイベント

HTMLコードを

Input a new nickname:<br /> 
<input type="text" id="newNick" /> 
<div id="pressMe">Press Me!</div> 
<div id="output"></div> 

jQueryのイベント

$("#pressMe").click(function(){ 
    var newNick = $("#newNick").val(); 

    /* please place the correct code here */ 

    $("#output").text("Spiderman's new nick is " + spiderman.nick); 
}) 

目標は次のとおりです。 ユーザー入力新しいニックネーム。ユーザーが#pressMeをクリックすると、#newNickの値が取得され、json内に配置されて「ニック」プロパティが変更されます。その後、#outputに新しい「ニック」プロパティが表示されます。

私はその混乱を望んでいません。ありがとうございました!

+0

あなたのクリックハンドラーにspiderman.nickを設定しましたか?それはあなたのために働かないのですか? – tjameson

答えて

3

JSONオブジェクトのプロパティに割り当てることができます。

spiderman.nick = newNick; 

をJSONをAJAXリクエストから来ている場合に、あなたとロードされた覚えておいてくださいそれはjQuery(またはeval)で、オブジェクトのプロパティは私が書いたようにアクセス可能です(未処理の応答を見ると引用符で囲まれていてもe)。あなたはメモリ内にJSONを定義した場合は、プロパティ名に引用符を使用する必要はありませんが、代わりに次のように記述する必要があります

var spiderman = { 
    fname : "Peter", 
    lname : "Parker", 
    nick : "Spidey" 
} 
+0

はい、うまくいきます。しかし、ニックネーム:「Spidey」はHTML上で変更されません。私はFirebugでそれを見る。それはjsonの仕組みですか? – Ryan

+1

はい、正しいです。ページ(DOM + JavaScript)がロードされると、サーバーによって送信された静的表現は、ブラウザーによって使用されなくなり、変更もされません。 –

1

私はあなただけでこれを見落とし確信しているが、これは動作するはずです:

$("#pressMe").click(function(){ 
    var newNick = $("#newNick").val(); 

    spiderman.nick = newNick; 

    $("#output").text("Spiderman's new nick is " + spiderman.nick); 
}); 
関連する問題