我需要找到 HTML 表中每一行的 Last td,并从该 td 中删除一个 css。我可以在不使用 Jquery 的情况下做到这一点吗?如何?
问问题
4052 次
6 回答
4
您可以为此使用 css3last-child
属性。像这样写:
tr td:last-child{
color:red;
}
但它不适用于 IE8 及以下版本。
于 2012-03-15T11:10:49.680 回答
1
使用 CSS
td:last-child: {
//your style 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
于 2012-03-15T11:10:51.283 回答
0
您是否尝试过使用 CSS3 选择器?例如
tr td:last-child
{
YOUR CODE HERE
}
您还可以查看使用类来显示哪些 td 是最后一个。但这当然不是动态的。
我相信还有一个普通的 javascript 答案,但我不太擅长:P
于 2012-03-15T11:11:01.213 回答
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(' ');
}
于 2012-03-15T11:21:23.877 回答
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;
}
工作小提琴。
于 2012-03-15T11:32:47.587 回答
0
你想用最后一个 TD 做什么?如果你想在每个 td 之间有一个边框,为什么不使用border-left,然后你可以使用 first-child 来删除它。可能有更好的方法与浏览器更兼容。
于 2012-03-15T12:49:15.897 回答