2014-07-17 2 views
0

동적으로 div의 ID를 JSON에서 설정하고 있습니다. 내가 divs에서 클래스를 제거하려고하면 아무 일도 일어나지 않습니다.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); 
} 

. 나는 그것이 단순한 무엇인가 알고있다. 그러나 나는 무엇이 없는가?

EDIT : 여기에 추가 코드가 있습니다. 클래스가 제거되지 않는 원인이 될 수 있습니다. 그러나 콘솔에는 여전히 올바른 div ID로 debtID가 표시됩니다.

 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 <)를 옮겼다.

팁 주셔서 감사합니다. 나는 또한 진행하고 번호로 시작하지 않는 이드를 변경합니다.

+2

jsfiddle를 제공 ​​할 수 있습니까? – Heejin

+0

data [i] .id_debt 콘솔 또는 알림에서 반환하는 내용을 확인하십시오. –

+0

어쩌면 따옴표를 추가하십시오. Wild Guess – Anobik

답변

0

몇 가지 변경 사항으로 코드를 테스트했지만 제대로 작동합니다.

Check this

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에 넣어 클래스 명()에 문제가 있습니까?

관련 문제