2011-11-30 2 views
2
for (i = 1; i < total.length; i++) { 
    $("div.category:nth-of-type(" + i + ") ul.qItem li :input[type=radio]:checked").each(function() { 
     total[i] += parseInt($(this).val()); 
     $("div.category:nth-of-type(" + i + ") div.report div.scorebox").html(total[i] + "/15"); 
    }); 
    if (total[i] > 11) { 
     $("div.category:nth-of-type(" + i + ") div.t12").toggle(); 
     $("div.category:nth-of-type(" + i + ") div.report div.scorebox").css("color", "green"); 
     $("div.category:nth-of-type(" + i + ") div.report span.opinion").html(high).css("color", "green"); 
    } else if (total[i] < 7) { 
     $("div.category:nth-of-type(" + i + ") div.t6").toggle(); 
     $("div.category:nth-of-type(" + i + ") div.report div.scorebox").css("color", "#900"); 
     $("div.category:nth-of-type(" + i + ") div.report span.opinion").html(low).css("color", "#900"); 
    } else { 
     $("div.category:nth-of-type(" + i + ") div.t711").toggle(); 
     $("div.category:nth-of-type(" + i + ") div.report div.scorebox").css("color", "orange"); 
     $("div.category:nth-of-type(" + i + ") div.report span.opinion").html(medium).css("color", "orange"); 
    } 
} 

for 루프는 5 개 div를 반복하고 각각에서 선택된 입력 라디오 버튼의 값을 합산해야합니다. 그런 다음 점수 상자에있는 5 개 범주 각각에 점수를 출력해야합니다. 3 가지 범위에 따라 성능 (저, 중, 고)에 대한 다른 견해를 출력하고, 빨강, 주황 또는 녹색 텍스트에 색을 칠하고, 텍스트 제공 조언 (t6, t711, t12)의 가시성을 토글해야합니다. 안타깝게도 점수 상자에 점수를 올리거나 표시 할 올바른 텍스트를 선택할 수없는 것 같습니다. 누구든지이 스크립트가 각 div에서 차례로 작동하도록하는 방법을 제안 할 수 있습니까?div를 통해 반복

+1

것은 예를 들어, HTML을 게시하시기 바랍니다 너무 –

+0

코드는 한 두 가정이 올바른로, 미세 같습니다. 1) 플러그인 또는 확장 jQuery를이 nth-of-type selector를 지원하고, 2) HTML의 구조가 'category'div의 묶음이고, div의 각 div는 모두 'advice'div와 'report'div입니다. 'report'div 안에는 'scorebox'와 'opinion'이 있습니다. – rkw

답변

4

jQuery를이 내장되어

$('selector').each(function(index, element) { 

}); 

$(selector).each()

+0

OP에 도움이되지만 실제로 질문에 도움이되지는 않습니다. 'for' 루프는 유효하고 때로는 바람직한 반복자이며'.each()'보다 훨씬 뛰어납니다. –

+0

"누구나이 스크립트를 각 div에서 차례대로 작동시키는 방법을 제안 할 수 있습니까?" OP에서 성능에 대해 언급하지 않았습니다. 그건 부적당하다. – liammclennan

+0

그건 내가 의미하는 것이 아닙니다. 나는 .each()도 사용한다. 나는 그가 5 반복을 일으킬 수있는 '선택자'가 있을지 불분명하다는 것을 의미했다. ;-) 그의 색인은 배열의 길이에 기반을두고 있으며,'selector' 객체의 배열과 상관 관계가있을 수도 있고 그렇지 않을 수도 있습니다. 어쨌든, 문제의 'for'루프 자체는 아닙니다. 마지막 문구의 표현에도 불구하고 문제는 "어떻게 반복합니까?" (for 루프는 괜찮습니다.) 오히려 "scorebox가 채워지지 않고 텍스트가 5 회에 업데이트 되었습니까?" –

관련 문제