javascript - 对象值未正确更新

标签 javascript jquery html object

我有一个对象如下:

{
"headerSection": {
    "text": "Some Text",
    "color": "red",
    "fontSize": "12px",
    "backgroundColor": "#000",
    "textAlign": "left"
   }
}

我有一个下拉列表,用户可以选择不同的字体大小,即 14px, 16px .. 20px。在此下拉列表的更改事件中,我想更改上面对象中 fontSize 的值,为此我这样做:

$('#font-size-ddl').change(function () {
    var value = $(this).val();
    headerObj.fontSize = value;
    console.log(JSON.stringify(headerObj));
});

在上面的 console.log 中,输出是:

{
"headerSection": {
    "text": "Some Text",
    "color": "red",
    "fontSize": "12px",
    "backgroundColor": "#000",
    "textAlign": "left"
 },
"fontSize": "20px",
}   

有人可以告诉我我做错了什么吗?

最佳答案

您应该更新 headerSection fontSize 属性。

在你的例子中,编译器正在寻找你的 headerObj 对象的 fontSize 属性,它没有找到它并为创建一个新的 property你的对象。

let headerObj={
"headerSection": {
    "text": "Some Text",
    "color": "red",
    "fontSize": "12px",
    "backgroundColor": "#000",
    "textAlign": "left"
   }
}

$('select').change(function () {
    var value = $(this).val();
    headerObj.headerSection.fontSize = value;
    console.log(JSON.stringify(headerObj));
}).trigger('change');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
  <option value="20px">20px</option>
  <option value="30px">30px</option>
</select>

关于javascript - 对象值未正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46238578/

相关文章:

javascript - 按两个字段排序,但第二个字段取决于 PHP 中的条件

javascript - 由于外部 css 包含,css 未被应用

HTML - div 不会跨页延伸

html - 左、右和中间内容位置

javascript - 如何解析 Handlebars 中已更改的 json 数据?

javascript - 实际拖动的 native HTML 5 拖放?

javascript - s3文件上传不返回响应

javascript - 折叠 sm 和/或 md 屏幕上的 Bootstrap 卡

javascript - JSONP 返回 "Uncaught SyntaxError: Unexpected token :"

javascript - 使用jquery过滤带有选择框选项值的json