如何更改事件的json属性?

时间:2011-07-12 16:16:32

标签: jquery ajax json properties

我想知道,如何在jquery事件上动态更改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中以更改“nick”属性。之后......它将在 #output 上显示新的“缺口”属性。

我希望它不会混淆。谢谢!

3 个答案:

答案 0 :(得分:3)

这应该可以正常工作:

spiderman.nick = newNick;

请记住,如果JSON来自AJAX请求并且您使用jQuery(或eval)加载它,那么可以在我写入时访问对象属性(即使您在查看原始响应时看到它们也会被引用) )。如果您在内存中定义了JSON,那么您不需要在属性名称上使用引号,而是应该写:

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

答案 1 :(得分:1)

您可以只分配给json对象的属性

spiderman.nick = newNick;

http://jsfiddle.net/s57YR/

答案 2 :(得分:1)

我确定你忽略了这一点,但这应该有效:

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

    spiderman.nick = newNick;

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