这是我的代码
var input_buttons = ["#one","#two","#three"];
var substr = input_buttons.split(',');
for(var i=0; i< substr.length; i++)
{
substr.attr('value', '');
}
为什么这不起作用?
答案 0 :(得分:4)
你的第一个问题是在数组上调用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
};
答案 1 :(得分:2)
你已经有了一个数组,没有什么可以拆分,这只适用于字符串。在调用attr
之前,您还必须将ID传递给jQuery。在这种情况下,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('');
答案 2 :(得分:2)
我想知道你为什么打电话:
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', '');
}
答案 3 :(得分:1)
var input_buttons = ["#one","#two","#three"];
$.each(input_buttons, function(idx, value) {
$(value).val('');
});
甚至更好更短:
$('#one, #two, #three').val('');
你也可以给这些元素一个公共的类名,然后使用它:
$('.className').val('');
答案 4 :(得分:1)
你的数组只包含id但不包含实际的对象 试试这个
var input_buttons = ["#one","#two","#three"];
for(var i=0; i< input_buttons.length; i++)
{
$(input_buttons[i]).removeAttr('value');
}
答案 5 :(得分:0)
请尝试以下操作删除属性:
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
。
答案 6 :(得分:0)
input_buttons
已经是一个数组 - 不要split
它。
要使用.attr
,您需要将其作为jquery对象,因此请调用$(input_buttons[i]).attr