【问题标题】:javascript code doesn't change font color anymorejavascript代码不再改变字体颜色
【发布时间】:2010-11-22 02:48:38
【问题描述】:

有人为我编写了一个不错的代码,但在对表格中的输出进行了一些更改后,array picks 字体不再更改,由以下 CSS 控制。

.win { color: lime; font-weight: bold }

.loss { color: red; font-weight: bold }

有人可以帮我编辑代码,使 数组选择 在获胜或没有获胜时再次变为石灰和红色吗?

<html>

<head>

<title>Lotto van Terwijn</title>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW" />

<style type="text/css">


body {

        font-family: Verdana, Arial, Helvetica, sans-serif;

        color: #006699;

        background-color: #FFFFF;

      }

      .name {
        float: left;
        width: 100px;

        color: #006699;

        font-weight: bold;

        margin-right: 0.50em;

      }

      .picks, .picks * {

        display: inline;

        margin: 0;

        padding: 0;

        list-style-type: none;

      }

      .picks * {

        margin: auto 0.50em;
        color: Yellow;

      }

      .win { color: lime; font-weight: bold }

      .loss { color: red; font-weight: bold }

      .drawNum, #Draws H3 {

          margin-bottom: 0;

      }


ul 
{
        list-style-type: none;
        padding-left: 0px;

}

th
{
text-align:left;
padding-right:30px;
padding-top:5px;
padding-bottom:5px;
} 

tr
{
text-align:left;
padding-right:30px;
padding-top:12px;

} 

</style>

<body>

<p><img src="../lotto/images/terwijn.png" width="547" height="188"></p>


<script type="text/javascript" src="../lotto/lotto.js"></script>

<div id="players"></div>
<div id="draws"></div>

<script type="text/javascript">

(function() {

 var players = {
    Joop   : ["6","8","16","18","26","28","32","36","38","41"],
    Marijke: ["7","10","14","18","24","29","30","34","39","40"],
    Michel : ["4","5","11","16","21","27","33","36","42","44"],
    Mario  : ["6","9","18","25","32","35","39","40","43","45"],
    Diana  : ["2","6","8","17","22","23","33","36","42","45"],
    Agnes  : ["3","5","10","15","26","29","32","37","41","44"],
    Chris  : ["5","7","8","9","11","12","16","28","30","32"],
    Jeannette: ["1","2","4","7","8","11","13","28","30","38"],
    Wieger: ["1","2","3","7","10","13","14","22","23","27"],
    Anita: ["6","13","15","17","21","26","32","33","43","45"],
    Thea: ["1","3","5","7","10","17","19","20","22","38"],
    Danny: ["3","7","11","15","22","28","32","37","40","43"],
    Cindy: ["2","4","16","18","21","24","33","38","41","44"],
    Hanneke: ["1","3","4","12","18","21","25","30","36","40"],
    Willem: ["3","9","17","21","27","33","35","39","41","42"]
},

draws = [
    {
    when: 'Datum: Zaterdag 08-08-2009',
          picks:[2, 13, 15, 18, 21, 41]
    },

    {
    when: 'Datum: Zaterdag 15-08-2009',
      picks:[6, 19, 24, 25, 35, 37]
    },

    {
    when: 'Datum: Zaterdag 22-08-2009',
      picks:[8, 17, 23, 26, 37, 42]
    }
];

var buildPlayers = function(){
    var cont = $("#players"), table = $('<table></table>');
    for( player in players ){
    if ( players.hasOwnProperty( player ) ) {
        var tr = $('<tr><th>' + player + '</th></tr>').appendTo(table),
            len = players[player].length;

        for ( var i = 0; i < len; i++) {
            var td = $('<td/>').text( players[player][i] )
            .appendTo ( tr );
        }

        cont.append( table );
    }
    }
};

var buildDraws = function(){
    var cont = $("#draws");
    for(var i = 0; i < draws.length; i++){
    var html = ["<div class='draw'>","<h4 class='drawNum'>Trekking "+(i+1)+"</h3>","<div class='date'>"+draws[i].when+"</div>","<ol class='picks'>"];

    for(var j = 0; j < draws[i].picks.length; j++) {
        var img = '<img src="http://www.lotto.nl/static/images/ballen/lotto/l'
        + draws[i].picks[j]
        + '.jpg" alt="'
        + draws[i].picks[j]
        + '" />';
        html.push("<li>"+img+"</li>");
        showWin(draws[i].picks[j]);
    }



    html.push("</ol>","</div>");
    cont.append(html.join(""));
    }
};

var showWin = function(winNum){
    $(".pick_"+winNum).removeClass("loss").addClass("win");
};

$(function(){
    buildPlayers();
    buildDraws();
    });

})();
</script>



</body>

</html>

【问题讨论】:

  • 我认为您缺少指向 jquery.js 的链接。
  • 我猜这可能发生在 lotto.js 中,但谁知道..
  • 确实如此安德烈,我复制粘贴它,因为jquery服务器有时很慢。

标签: javascript fonts colors


【解决方案1】:

当您更改为您的表格布局时,您设法失去了根据需要添加“赢”或“输”类别的类别。相关代码为:

var showWin = function(winNum){
    $(".pick_"+winNum).removeClass("loss").addClass("win");
};

它无法找到具有“pick_[some number]”类的元素,然后它无法添加赢或输类别,并且您无法获得颜色。

要解决您的问题,在 BuildPlayers 函数中,您需要以下内容:

var td = $('<td/>').text(players[player][i]);
td.addClass("pick_" + players[player][i]);
td.appendTo(tr);

这可以合并为一行,但我认为这样可能更容易看到。中间线(“addClass”)是您所缺少的。

【讨论】:

  • 我对这些答案有点困惑,我需要替换或添加什么?
  • 感谢您的回复,唯一的问题是.loss没有显示,我的知识没有涵盖这个问题。
  • 克里斯,只需将 loss 类也添加到 td 中。在将 td 附加到 tr 之前,添加 td.addClass("loss");
【解决方案2】:

改变

for ( var i = 0; i < len; i++) {
        var td = $('<td/>').text( players[player][i] )
        .appendTo ( tr );
    }

收件人:

for ( var i = 0; i < len; i++) {
        $(tr).append( "<td><span class='pick_" + players[player][i] +"'>" + players[player][i] + "</span></td>");
    }

您忘记在数字中添加正确的类。

【讨论】:

    【解决方案3】:

    加布里埃尔是正确的。在buildPlayers函数中创建td的地方需要添加pick_#类。

    把这个放在for循环里面:

    var td = $('<td/>') 
        .addClass("pick_" + players[player][i]) // add the class to the td
        .text( players[player][i] )
        .appendTo ( tr );
    

    应该解决问题。

    【讨论】:

    • +1 是的,就是这样……我不想通读所有代码来早点找到那行……哈哈。
    猜你喜欢
    • 2021-09-30
    • 1970-01-01
    • 2015-01-02
    • 2018-03-23
    • 2014-01-16
    • 2018-04-04
    • 2017-06-19
    • 2019-10-25
    • 1970-01-01
    相关资源
    最近更新 更多