0

如何以这种方式声明变量:

var sarr = $("#crop_vals").find("input");
$(sarr).each(function() { 
    var $(this).attr("id") = $(this).val();
});

我想要的是让 var 命名为 id 等效于该值。

4

3 回答 3

5

您不能以这种方式设置元素的属性,您将获得一个值。

var $sarr = $("#crop_vals").find("input");

$sarr.each(function() { 
    this.id = this.value;
})

请注意,由于您已经缓存了对象,因此无需$()再次使用。

设置属性:

$(selector).attr('id', 'newValue');

获取属性:

var id = $(selector).attr('id');

您还可以使用attr回调函数:

$sarr.attr('id', function() { 
    return this.value;
})
于 2012-09-15T14:07:43.377 回答
1

你必须wrong syntax for assigning value属性,你需要使用attr('attributeName', 'value');

改变

var $(this).attr("id") = $(this).val();

$(this).attr("id", $(this).val());

你的代码将是

var sarr=$("#crop_vals").find("input");
$(sarr).each(function(){ 
     $(this).attr("id",$(this).val());
});
于 2012-09-15T14:05:37.463 回答
1

全局设置“变量”(尽管您不应该这样做,因为它会自找麻烦)

var sarr = $("#crop_vals").find("input");
$(sarr).each(function() { 
    window[ this.id ] = this.value;
});

为了以更安全的方式设置它们,您可以这样做

var sarr = $("#crop_vals").find("input"),
    myVars = {};
$(sarr).each(function() { 
    myVars[ this.id ] = this.value;
});

并使用myVars[ id ].

于 2012-09-15T14:20:27.140 回答