【问题标题】:Changing CSS from jQuery从 jQuery 更改 CSS
【发布时间】:2013-02-25 16:03:12
【问题描述】:

我正在尝试通过 jQuery 更改 div 的 CSS。下面是jQuery代码。

$(".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,请告诉我,我很乐意提供。如果可以的话请帮忙。谢谢。

请帮忙.......

【问题讨论】:

  • 第二个 css 调用中有一个点 "background-color"."red" 并且您的 if 语句应该使用比较运算符 == 进行测试,而不是赋值运算符 =
  • 你检查过 Firebug 中的错误控制台吗?
  • 民意调查真的有正确答案吗? :)
  • @f00bar 我已经更改了这些错误,但即使这样,div 的背景颜色也没有改变。顺便说一句,感谢您的帮助!
  • @Guido 什么是 Firebug?谢谢!

标签: jquery html css colors children


【解决方案1】:

看起来像一个单/双/三等于错字。

if(LCV = correctAnswer) {

应该是

if(LCV === correctAnswer) {

另外,在您的第二个 css 调用中应该有一个逗号。

您也可以考虑在您的parseInt 调用中添加一个基数,以防它解析的字符串以0 或其他一些不幸的字符开头:)

Radix 是您要将整数解析为的基数。例如,字符串“101”可以读作以 10 为基数的“一百零一”,或者它可以解释为二进制数,意思是“九”。 parseInt 默认以 10 为基数,除非您给它的字符串以 00x 开头。查看https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt的文档

编辑:

我认为这是一个逻辑问题而不是语法问题。正确答案总是 [1,2,3,4,5] 中的数字吗?您还应该更改在 if/else 块中收到警报的消息,以便您知道正在执行哪个。

【讨论】:

  • 你是对的,我将 = 更改为 == 和 .是 StackOverflow 中的输入错误,在我的代码中是正确的。你能解释一下那个基数是什么意思吗?我以前见过它,但我仍然不确定它的作用或代表什么。谢谢!
  • 所以要进行 base 10 表示,我必须将行更改为 var correctAnswer = parseInt($(this).attr("id"),10);?
  • 无论输入字符串如何,都要确保它是以 10 为底,是的。
  • 我在上面的评论中插入了换行符,但它仍然不起作用....
  • 是的,正确的答案始终是介于 1 和 5 之间的数字。我还尝试在 if 语句中使用不同的警报来查看正在执行哪个 if 语句并且结果符合预期,正确的 if语句被执行。我认为问题在于实际的css更改线。我将粘贴链接到这个 jQuery 的 HTML,因为我认为这就是问题所在。
【解决方案2】:

您是说 if(LCV == correctAnswer) 吗? :)

【讨论】:

  • 你是对的,我修复了这个错误,但是 div 的背景颜色仍然没有改变。
  • 顺便感谢您的帮助。
【解决方案3】:

也正确 LCV = correctAnswer 而不是使用赋值运算符使用“==”一个比较运算符

【讨论】:

    【解决方案4】:

    我发现了问题。根据我给你的信息,你们回答正确。原来我所指的类,“.Bars_”+LCV,应该是,“.bars_”+LCV。感谢所有的帮助。我真的很感激它

    【讨论】:

      【解决方案5】:

      你的函数有语法错误

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

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

      【讨论】:

        猜你喜欢
        • 2022-11-29
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-02
        • 2015-06-26
        • 2014-04-30
        • 2017-04-08
        相关资源
        最近更新 更多