我找不到任何东西,但我觉得之前有人问过。
我有多个输入:
<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
答案 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]);
});
答案 1 :(得分:0)
在你的情况下&#39;这个&#39;如你所料,指向function()而不是你的jQuery实例(&#39; .abc&#39;)。有关此问题的解释,请参阅http://www.quirksmode.org/js/this.html。