使用类与 addClassName jscript 有什么区别?
在 for 循环中,每当我向现有类添加一个类时,然后在每个循环循环之后它都会向它添加新类。所以每次进入循环的条件都在变化。
当我使用 class 而不是 addClassName 时,一切都开始正常工作。在每个反向会话之后,循环匹配条件。
怎么解释?
工作版本:
for (var i = 0; i < fields.length; i++) //instead of .each
{
alert(0.5);
alert(fields[i].className);
if (fields[i].className == 'text' || fields[i].className == 'date' || fields[i].className == 'number' || fields[i].className == 'text error' || fields[i].className == 'date error' || fields[i].className == 'number error' || fields[i].className == 'text valid' || fields[i].className == 'date valid' || fields[i].className == 'number valid' || fields[i].className == 'text valid error' || fields[i].className == 'date valid error' || fields[i].className == 'number valid error' )
{
alert(0.3);
var val = fields[i];
var classname = "";
if(val.value.length <= 4) {
classname = fields[i].className + " error";
fields[i].class = classname;
Effect.Shake(fields[i], { times:3 }, 50);
errorString = 'Please complete all required fields.';
alert(0.6);
alert(val.value);
alert(0.66);
alert(fields[i].name);
alert(val.value.class);
//error++;
}
else {
classname = fields[i].className + " valid";
fields[i].class = classname;
alert(8.5);
alert(val.value.class);
}
}
alert(8.8);
alert(fields[i].class);
}
不工作的版本:
for (var i = 0; i < fields.length; i++) //instead of .each
{
if (fields[i].className == 'text' || fields[i].className == 'date' || fields[i].className == 'number' || fields[i].className == 'text error' || fields[i].className == 'date error' || fields[i].className == 'number error' )
{
var val = fields[i];
if(val.value.length <= 4) {
fields[i].addClassName('error');
Effect.Shake(fields[i], { times:3 }, 50);
errorString = 'Please complete all required fields.';
error++;
} else {
fields[i].addClassName('valid');
}
}
}