我正在动态地将id设置为来自JSON的div。当我尝试从某些div中删除一个类时,没有任何反应。
if(dueDate < today){
debtID = "#" + data[i].id_debt;
console.log(debtID);
$(debtID).removeClass(_this.hiddenClassAlt);
}
控制台显示#4。但是在id =“4”的div上,它仍然是隐藏的。
如果我这样做:
if(dueDate < today){
debtID = "#" + data[i].id_debt;
$("#4").removeClass(_this.hiddenClassAlt);
}
那会有效。我知道这很简单,但我错过了什么?
编辑:这是附加代码,也许在其他地方出现错误导致该类不被删除。但是,控制台仍然将debtID显示为正确的div ID。
for(var i = 0; i < debtsLength; i++){
var debtID = '';
if(data[i].dob != null){
data[i].dob = _this.localPost.reformatDate(data[i].dob);
}
if(data[i].created_date !== null ){
var dueDate = $.datepicker.parseDate( "yy-mm-dd", data[i].created_date);
var today = new Date();
dueDate = dueDate.toISOString();
today = today.toISOString();
data[i].created_date = _this.localPost.reformatDate(data[i].created_date);
debtID = "#" + data[i].id_debt;
//debtID = debtID.replace(/ /g,'');
} else {
var dueDate = null;
var today = null;
}
if(data[i].update_date != null){
data[i].update_date = _this.localPost.reformatDate(data[i].update_date);
}
output = Mustache.render(_this.accountDebtsTemplate, data[i]);
if(dueDate < today){
debtID = "#" + data[i].id_debt;
console.log(debtID);
$(debtID).removeClass(_this.hiddenClassAlt);
}
$(_this.debteeContainer).append(output);
$(_this.showDebtee).addClass(_this.hiddenClassAlt);
$(_this.hideDebtee).removeClass(_this.hiddenClassAlt);
}
编辑:解决了。我将if(dueDate&lt; today)移动到循环的最后。
感谢您的提示。我也会继续将id更改为不以数字开头。
答案 0 :(得分:0)
我在一个小提琴中测试了你的代码,但是我的工作正常。
var dueDate = 0;
var today = 2;
var data = ["4"];
var i = 0;
$(document).ready(function(){
if(dueDate < today){
debtID = "#" + data[i];
$(debtID).removeClass("testClass");
}
});
你输入的类名可能有问题.removeClass()?