gpt4 book ai didi

javascript - 为 JS 对象动态分配属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:26:23 24 4
gpt4 key购买 nike

我需要动态地向 js 对象添加属性,这是我通过 eval() 实现的:

$ ->

#Methods
window.add_address = (attributes, id=new Date().getTime())->
$container = $('ul#addresses_list')
$unit = $('<li>')

$.each attributes, (key,value)->
$input = $('<input type="hidden">')
$input.attr 'name', "contact[addresses_attributes][#{id}][#{key}]"
$input.val value
$unit.append $input

$container.append $unit

#Events

#Add address button
$('a#add_address').on 'click', (ev)->
attributes = new Object
$('#address_fields').find('input').each ->
eval("attributes.#{$(this).attr 'id'}='#{$(this).val()}'");

add_address attributes

这很完美,但我对 eval() 感到尴尬,有没有办法做到这一点“更漂亮”?我的意思是,我搜索了像 Jquery .serializeArray() 这样的替代方案但它似乎只适用于查询表单,我需要从 #address_fields div 获取输入。

最佳答案

使用object['key']表示法

attributes[$(this).attr('id')] = $(this).val();

使用以下方法创建对象也非常有效:

var attributes={};

编辑:沿着类似的路线可以用相同的符号编写 jquery 方法

   attributes[$(this)['attr']('id')] = $(this)['val']();

关于javascript - 为 JS 对象动态分配属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com