如何以这种方式声明变量:
var sarr = $("#crop_vals").find("input");
$(sarr).each(function() {
var $(this).attr("id") = $(this).val();
});
我想要的是让var命名的id等于该值。
答案 0 :(得分: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;
})
答案 1 :(得分: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());
});
答案 2 :(得分: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 ]
进行访问。