在Javascript中刷新元素样式

时间:2009-10-17 18:06:49

标签: javascript css dynamic refresh element

我有一个表,从记录集动态加载行。我也使用过Javascript,这样当选中一个复选框(不在表格中)时,它会隐藏列x = y时的所有行,但是我有一个垂直边框(实际上只是一个位于右侧的背景图像),它在使用CSS .sortable .dynamicrow:last-child td{

的表格的最后一行

因此,当我选中该框并删除最后一行时,边框不会正常淡化,我需要重新运行/刷新CSS。

总而言之,我想知道如何在javascript中刷新元素的样式/ CSS。

   .sortable .dynamicrow:last-child td{
    background-image:url(../Images/tablevborderbottom.png);
    background-position:right;
    background-repeat:no-repeat;
}

我使用的CSS是否在最后一行上有垂直边框淡化有时最后一行被删除,所以第二行变成最后一行,但它保持它的实线边框并且不会淡出。 / p>

另一种表达方式是,在页面加载后,由于Javascript,有时最后一个子项被删除,因此上面的子项成为最后一个子项,如何将上述CSS应用于新的子项?

1 个答案:

答案 0 :(得分:0)

我要做的是在现有样式中添加一个类声明,并在隐藏最后一行时将CSS类应用到现在的最后一行。

   .sortable .dynamicrow:last-child td, .dummy_last_row{
    background-image:url(../Images/tablevborderbottom.png);
    background-position:right;
    background-repeat:no-repeat;
}

然后是JavaScript。这是基于一个简单的表,有5行,1 td,带有onclick =“Lst_row(this)”的按钮

function Lst_row(row){
    row = row.parentNode.parentNode;
    tbl = document.getElementById("sorttable");
    rows = tbl.getElementsByTagName("TR");
    if(row == rows[tbl.getElementsByTagName("TR").length-1] || row.className.indexOf("dummy_last_row") != -1){
        for (i=0; i<rows.length; i++){
            if(i != 0 && row == rows[i] && rows[i-1])){
                rows[i-1].className += " dummy_last_row";
            }
        }
    }
}

这当然很简单,但基础就在那里。