今天有一个需求是这样的,通过一个select的change事件,使用ajax获取哪些月份有配置(就当做是有记录就行了),并且将有配置的月份通过字符串,比如:
3,4,5,6,7 这样的形式返回。
代码如下
//年份选择器的change事件
$("#year").change(function(){
for(var i=1;i<=12;i++){
document.getElementById("month"+i).style.background="#c0c0c0";
}
$.ajax({
type:"POST",
data:{"yearSelect":$(this).val()},
dataType:"TEXT",
url:"<%=path%>/rewardList.do?method=changeMonth",
success:function(result){
if(result.trim()!=""){
var monthed=result.split(",");
for(var i=0;i<monthed.length;i++){
var id="month"+monthed[i];
$("#"+id)[0].style.background="orange";
}
}
},
error:function(result){
alert("系统出错!");
}
});
});
上面的代码中是没有问题的,但是这一句如果改为dom方式的js,那么最后一个月始终获取不到dom对象,该dom对象是存在的,数据也完全正常。
即,改为如下出错:document.getElementById(id).style.background="orange";
前面的都正常。
举例说明:
数据返回为 1,2,3,5,6的时候
month1,month2,month3,month5都能正常改变颜色,最后一个,不管最后是什么数字,总是出错,火狐的JS错误控制台提示:
document.getElement(...) is null 也就是说,他没有拿到这个对象,用JQUERY可以。
但是他又是真的存在啊。。所以费解。。