0

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

我有多个输入:

<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

4

2 回答 2

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/

于 2013-01-29T22:08:10.890 回答
0

在您的情况下,'this' 指向 function() 而不是您的 jQuery('.abc') 实例,如您所料。请参阅http://www.quirksmode.org/js/this.html以获得对此的解释。

于 2013-01-29T21:46:24.677 回答