2013-02-25 79 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