2013-02-25 77 views
0

我想通過jQuery更改div的CSS。以下是jQuery代碼。從jQuery更改CSS

$(".endPollingButton").click(function() { 
    var endPollingCode = $(this).attr("value"); 
    var correctAnswer = parseInt($(this).attr("id")); 
    for(LCV=1;LCV<=5;LCV++) { 
     if(LCV == correctAnswer) { 
      $("#"+endPollingCode).children(".Bars_"+LCV).css("background-color","green"); 
      alert("check"); 
     } else { 
      $("#"+endPollingCode).children(".Bars_"+LCV).css("background-color","red"); 
      alert("check"); 
     } 
    } 
}); 

下面是HTML代碼:

for($LCV = 1; $LCV <= $rowCount; $LCV++) { 
        echo "<div class='graphBlock' id='".$questionCode[$LCV]."' value=''>"; 
        echo "<div id='questionCodeBar'>Quiz Code: ".$questionCode[$LCV]."</div>"; 
        echo "<div id='questionTitleBar'>".$questionName[$LCV]."</div>"; 
        echo "<span class='barsInfo' id='barsInfo1".$LCV."'></span><div class='bars_1' id='bars1".$LCV."' style='width:;'></div>"; 
        echo "<span class='barsInfo' id='barsInfo2".$LCV."'></span><div class='bars_2' id='bars2".$LCV."' style='width:;'></div>"; 
        echo "<span class='barsInfo' id='barsInfo3".$LCV."'></span><div class='bars_3' id='bars3".$LCV."' style='width:;'></div>"; 
        echo "<span class='barsInfo' id='barsInfo4".$LCV."'></span><div class='bars_4' id='bars4".$LCV."' style='width:;'></div>"; 
        echo "<span class='barsInfo' id='barsInfo5".$LCV."'></span><div class='bars_5' id='bars5".$LCV."' style='width:;'></div>"; 
        echo "<button class='endPollingButton' id='".$correctAnswer[$LCV]."' value='".$questionCode[$LCV]."' >End Polling</button>"; 
        echo "</div>"; 
       }  

上面的代碼無法正常工作。我不確定是否有任何語法錯誤。兩個檢查警報正在工作。如果您需要更多代碼,例如與之相關的HTML代碼,請告訴我,我很樂意提供。如果可以的話請幫忙。謝謝。

Pleaseee help .......

+1

在第二個CSS調用''background-color「。」red「中有一個點,你的if語句應該用比較運算符'=='測試,而不是賦值運算符'=' – Stphane 2013-02-25 16:05:07

+0

你有沒有檢查了Firebug中的錯誤控制檯? – HerrSerker 2013-02-25 16:07:33

+0

民意調查真的有一個正確的答案? :) – Andbdrew 2013-02-25 16:10:43

回答

0

的比較我發現這個問題。你們根據我給你的信息正確回答。結果是我指的是「.Bars _」+ LCV,應該是「.bars _」+ LCV。感謝所有的幫助。我真的很感激它

1

看起來像單/雙/三等於錯字。

if(LCV = correctAnswer) { 

大概應該是

if(LCV === correctAnswer) { 

也有在你的第二個電話的CSS點那裏應該是一個逗號。

你也可以考慮的情況下,增加一個基數,以您的通話parseInt它解析字符串啓動帶0或其他一些不幸的性格:)

基數是要分析的整數什麼基地。例如,字符串「101」可以被理解爲「一百一十」的基數10,或者它可以被解釋爲意味着「九」的二進制數。 parseInt默認爲10,除非您給它的字符串以00x開頭。檢查出的文檔在https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt

編輯:

我認爲這是一個邏輯問題,而不是一個語法問題。 [1,2,3,4,5]中的正確答案總是數字嗎?您還應該更改在if/else塊中收到警報的消息,以便可以確定哪個正在執行。

+0

你是對的,我改變了== ==和。是StackOverflow中的打字錯誤,在我的代碼中是正確的。你能解釋一下這個基數的含義嗎?我以前看過它,但我仍然不確定它做了什麼或代表什麼。謝謝! – 2013-02-25 16:15:07

+0

因此,要做一個基地10代表,我將不得不改變線var correctAnswer = parseInt($(this).attr(「id」),10);? – 2013-02-25 16:25:28

+0

以確保它是基數10,而不管輸入字符串是什麼。 – Andbdrew 2013-02-25 16:26:05

0

您的意思是if(LCV == correctAnswer)? :)

+0

你是對的,我修正了錯誤,但仍然div的背景顏色沒有改變。 – 2013-02-25 16:13:02

+0

感謝您的幫助。 – 2013-02-25 16:14:37

-1

有語法錯誤在你的函數

正確
$( 「#」 + endPollingCode)。兒童( 「酒吧_ 」+ LCV)的CSS(「 背景色」, 「紅」 );

 $("#"+endPollingCode).children(".Bars_"+LCV).css("background-color","red"); 
+0

我改變了。 – 2013-02-25 18:42:50

0

也是正確的LCV = correctAnswer 而不使用賦值運算符使用 「==」 opperator

+0

我改變了。 – 2013-02-25 18:42:12