在不使用Jquery的情况下查找最后一个td

时间:2012-03-15 11:07:39

标签: javascript html css no-framework

我需要找到HTML表格中每一行的Last td,然后从该td中删除一个css。我可以在不使用Jquery的情况下完成。 怎么样?

6 个答案:

答案 0 :(得分:4)

您可以使用css3 last-child属性。写得像这样:

tr td:last-child{
 color:red;
}

但它在IE8&下方。

答案 1 :(得分:1)

使用CSS

td:last-child: {
  //your style here
}

Docs on CSS3 selectors here

或使用JavaScript遍历DOM:

var mytable = document.getElementById('tableid');
var myrows = mytable.getElementsByTagName("tr");
var lastrow = myrows[myrows.length -1];
var mycells = lastrow.getElementsByTagName("td");
var lastcell = mycells[mycells.length -1];
// set CSS property here
lastcell.style.color = "red";

lastcell是您的最后一次td

Working example using JavaScript

答案 2 :(得分:0)

您是否尝试过使用CSS3选择器? E.g

tr td:last-child
  {
    YOUR CODE HERE
  }

您还可以查看使用类来显示哪个td是最后一个。但当然这不是动态的。

我相信还有一个正常的javascript答案,但我不是很擅长:P

http://www.w3.org/TR/selectors/

http://www.quirksmode.org/css/firstchild.html

答案 3 :(得分:0)

假设您不是在寻找css类型的解决方案

rows=document.getElementsByTagName('tr')
for (var i=0; i<rows.length; i++){
    columns=rows[i].getElementsByTagName('td');
    mytd = columns[columns.length-1];
    classname = mytd.className;
    arr = classname.split(' ');
    mytd.className = arr.filter(function(e){return e!=CLASSTOREMOVE}).join(' ');
}

答案 4 :(得分:0)

对于纯JavaScript解决方案:

function removeCssClass(tableId, cssClass) {
    var trs = null;
    var tr = null;
    var tds = null;
    var td = null;
    var classes = [];
    var i = 0;

    trs = document.getElementById(tableId).getElementsByTagName('tr');
    tds = trs[trs.length - 1].getElementsByTagName('td');
    td = tds[tds.length - 1];
    classes = td.className.split(' ');
    for (i = 0; i < classes.length; i += 1) {
        if (classes[i] === cssClass) {
            classes.pop(i);
        }
    }
    td.className = classes.join(' ');
    return false;
}​

工作fiddle

答案 5 :(得分:0)

你想用最后一个TD做什么?如果你想在每个td之间有一个边框,为什么你不使用border-left然后你可以使用first-child来删除它。可能有更好的方法与浏览器更兼容。