这里是我的代码我想遍历数组,并修改属性
var input_buttons = ["#one","#two","#three"];
var substr = input_buttons.split(',');
for(var i=0; i< substr.length; i++)
{
substr.attr('value', '');
}
为什么不工作的呢?
这里是我的代码我想遍历数组,并修改属性
var input_buttons = ["#one","#two","#three"];
var substr = input_buttons.split(',');
for(var i=0; i< substr.length; i++)
{
substr.attr('value', '');
}
为什么不工作的呢?
你已经有了一个数组,没有什么可以拆分的,这只适用于字符串。您还必须将ID传递给jQuery,然后才能打开attr
。在这种情况下,val
甚至更好。
var input_buttons = ["#one","#two","#three"];
for(var i=input_buttons.length; i--;) {
$(input_buttons[i]).val('');
}
但短会使用multiple selector:
$('#one, #two, #three').val('');
,或者如果你已经有数组,创建一个字符串由荷兰国际集团join
的ID:
$(input_buttons.join(',')).val('');
请尝试以下方法删除属性:
var input_buttons = ["#one","#two","#three"];
for(var i=0; i< input_buttons.length; i++)
{
$(input_buttons[i]).removeAttr('value');
}
的原因,你的代码不工作时在jQuery的功能超载。 .attr('value', '')
的计算结果为.attr('value')
,它返回值value
而不是设置它。原因是''
评估为false
。
你的第一个问题是在数组上调用split(',')。但是,如果你只是想将所有那些为空字符串的值,你可以这样做:
$('#one,#two,#three').val('');
如果你想设置你需要遍历不同的值:
$('#one,#two,#three').each(function() {
// this == the HTML node (not a jQuery element)
this.value = someValue; // someValue would set outside
};
我想知道为什么你打电话:
var substr = input_buttons.split(',');
由于你的input_buttons的性质,你已经有了一个数组。所有你应该做的是:
var input_buttons = ["#one","#two","#three"];
for(var i=0; i< substr.length; i++)
{
$(input_buttons[i]).attr('value', '');
}
var input_buttons = ["#one","#two","#three"];
$.each(input_buttons, function(idx, value) {
$(value).val('');
});
甚至更好和更短:
$('#one, #two, #three').val('');
你也可以给这些元素共同的类名,然后使用此:
$('.className').val('');
input_buttons
已经是一个数组 - 不要split
它。
要使用.attr
你需要的是一个jQuery对象,所以叫$(input_buttons[i]).attr
您的阵列只包含ID而不是实际的对象 试试这个
var input_buttons = ["#one","#two","#three"];
for(var i=0; i< input_buttons.length; i++)
{
$(input_buttons[i]).removeAttr('value');
}
你需要告诉我们什么你的代码应该这样做,因为这根本没有任何意义。 'input_buttons'是一个数组,数组没有'split'方法。字符串有一个'split'方法返回一个数组,而数组也没有'attr'方法。 – RoToRa 2011-03-09 15:18:31