使用jQuery动态地为表中的替代行添加Bgcolor

时间:2014-01-31 06:31:30

标签: jquery html-table

我创建了程序,使用“添加行”按钮将行添加到表中。每行都作为新行添加到表中。我想为奇数行和偶数行添加不同的背景颜色。我正在使用jQuery添加背景,但我的代码中有一点错误。我的意思是我可以在行中添加背景颜色,但显示不正确。

这是jQuery代码:

<script>
    $(document).ready(function() {
        var id = 0;

        // Add button functionality
        $("#addrow").click(function() {
            id++;

            if(id%2==0){
                $(".prototype td").css("background-color","#eee");
            }else{
                $(".prototype td").css("background-color","#ddd");
            }

            var master = $(this).parents("table.stdform");

            // Get a new row based on the prototype row
            var prot = master.find(".prototype").clone();

            master.find(".fancyTable tbody").append(prot);

        });
    });
</script>

这是html代码:

<html>
<head>
    <title></title>
</head>
<body>
    <table width="100%" cellpadding="0" cellspacing="0" border="0"
    class="stdform">
        ..other codes...
        <tr><td>
        <table class="fancyTable" id="sortable-table"
                cellpadding="0" cellspacing="0" width="100%">
                <thead>
                    <tr>
                        <td>header one</td>
                        <td>header two</td>
                        <td>header three</td>
                    </tr>
                </thead>
                <tbody id="job-tbody">
                    <tr class="prototype">
                        <td>one</td>
                        <td>two</td>
                        <td>three</td>
                    </tr>
                </tody>
        </table>
        </td></tr>
    </table>
</body>
</html>

谢谢,..

2 个答案:

答案 0 :(得分:2)

您可以使用css样式表执行此操作,也可以使用jquery执行此操作:

http://api.jquery.com/odd-selector/

从jquery站点获取代码:

<table border="1">
  <tr><td>Row with Index #0</td></tr>
  <tr><td>Row with Index #1</td></tr>
  <tr><td>Row with Index #2</td></tr>
  <tr><td>Row with Index #3</td></tr>
</table>

<script>
    $( "tr:odd" ).css( "background-color", "#bbbbff" );
</script>

注意html是如何不受任何css样式影响的,以及jquery如何在一行中完成工作。如果你想访问偶数颜色,总会有“tr:even”选择器。

http://api.jquery.com/even-selector/

另外一个问题(仅当您不使用回发刷新表并希望直接刷新时)

添加新行时可能会遇到另外一个问题。你的jquery.ready函数会在你的页面准备好后执行一次。所以既然你通常在dom上有jquery代码$( "tr:odd" ){...}就可以处理你已经拥有的html表元素了,那么css样式只会影响那些行,而不会影响你之后添加的任何新行。那。

您可以选择快捷方式,并添加用于jquery.ready函数的相同代码,并将其应用于您的点击处理程序(如果您的用户需要添加很多内容并且您的表格很大,则可能会受到性能影响),或者您可以跟踪表格的最后一行,计算出奇数或偶数,并在添加新行时应用css样式。

我会计算表格中有多少项目的运行次数,并使用该数字作为您要添加的新行的决定因素。

答案 1 :(得分:1)

您可以使用Jquery Odd even selecter,

试试这段代码:

<强> DEMO

  $(document).ready(function() {
            $("tr:odd").css("background-color","#eee");
            $("tr:even").css("background-color","#ddd");
        });