根据数组是否更改了jQuery,为数组分配了输入值

时间:2013-01-29 21:39:09

标签: jquery input attributes onchange

我找不到任何东西,但我觉得之前有人问过。

我有多个输入:

<input id="id1" class="abc" name="tags" "value="test1" />
<input id="id2" class="abc" name="tags" "value="test2" />

当用户更改输入的值时,我希望脚本将其拾取并将其分配到数组中。

我有什么:

jQuery('.abc').change(function() {
        var id = jQuery(this).attr('id');
        var name = jQuery(this).attr('name');
        var value = jQuery(this).val();
        var ch = {};
        ch[id][name] = value;
        alert(ch[id][name]);
    });

但从一开始,它就没有用。 jQuery(this).attr('id')不作为函数存在。我认为这不起作用的原因是因为没有我打电话的特定班级,但我不知道。也许我一直在盯着代码太多,但它不起作用!

错误:can't convert undefined to object

2 个答案:

答案 0 :(得分:2)

您需要为ch[id]

创建一个新对象
jQuery('.abc').change(function () {
  var id = jQuery(this).attr('id');
  var name = jQuery(this).attr('name');
  var value = jQuery(this).val();
  var ch = {};
  ch[id] = {}; // <-- here
  ch[id][name] = value;
  alert(ch[id][name]);
});

http://jsfiddle.net/tq2CJ/

答案 1 :(得分:0)

在你的情况下&#39;这个&#39;如你所料,指向function()而不是你的jQuery实例(&#39; .abc&#39;)。有关此问题的解释,请参阅http://www.quirksmode.org/js/this.html