如何以不同的方式声明javascript变量

时间:2012-09-15 14:04:21

标签: javascript jquery variables

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

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

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

3 个答案:

答案 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 ]进行访问。