1

我有 2 个数组,1 个具有十六进制索引和颜色(不带 #),另一个具有相应的索引和练习类型。

我想要实现的是生成一个时间表,该时间表向包含指定锻炼类型的 div 添加一个类“ExerciseType”+ 来自数组的锻炼索引。就像这样,例如“ExerciseType0”或“ExerciseType1”(完成并工作)。然后我尝试使用 jQuery 将背景颜色更改为具有与索引对应的类的 div。

为此,我尝试编写一个函数 $ColorIndex - 索引数组作为键和十六进制颜色作为值的 .ExerciseType0 等之前没有样式。

<script type=\"text/javascript\" src=\"jquery-1.8.2.js\"></script>
<script type=\"text/javascript\">
    $(document).ready(function(){
        var ColorIndexJS = <?php echo json_encode($ColorIndex) ?>;
        var ColorIndexLength = ColorIndexJS.length;
        var counter = 0;
        while(counter<ColorIndexLength){
            $('.ExerciseType' + counter.toString()).css("background-color", "#"+ColorIndexJS[counter]);
            counter++;
        }
    });
</script>

我在 firebug 中从这段代码得到的结果是

$(document).ready(function(){
var ColorIndexJS = ["FF4040","EEC591","FF7F24"];
var ColorIndexLength = ColorIndexJS.length;
document.write("ExerciseType");
var counter = 0;
while(counter<ColorIndexLength){
$('.ExerciseType' + counter.toString()).css("background-color", "#"+ColorIndexJS[counter]);
counter++;
}
}); 

如此处所示 php_array 已成功转换,但函数本身只是不想工作。有任何想法吗?

4

2 回答 2

1

为什么不让 php 写出 CSS 类并且涉及的 JavaScript 为零?

<style>
    .ExerciseType0{background-color:#FF4040;}
    .ExerciseType1{background-color:#EEC591;}
    .ExerciseType2{background-color:#FF7F24;}
</style>

您的代码失败的原因是 document.write,它替换了页面内容,因为它发生在加载文档之后。

于 2012-11-02T12:58:09.257 回答
0

你的 js 代码是正确的,因为document.write它似乎覆盖了你的代码。

尝试取消注释document.writeat DEMO,您就会明白我的意思。

于 2012-11-02T13:00:43.107 回答