我有一个具有不同值的表。第一列包含标签。我需要获得最宽标签的宽度。我假设我需要某种循环,但那又是什么?
$("#myTable td:nth-child(1)").width();
感谢。
答案 0 :(得分:4)
var w = 0;
$("#myTable tr td:first").each(function(){
if($(this).width() > w){
w = $(this).width();
}
});
答案 1 :(得分:3)
我假设您在第一列中的所有<label>
元素中都有一个<td>
元素(因为在同一列中比较<td>
元素本身的宽度没有意义列他们同样宽(不考虑colspan != 1
)):
var widestLabel = 0;
$("#myTable td:nth-child(1) label").each(function() {
widestLabel = Math.max(widestLabel, $(this).width());
});
答案 2 :(得分:2)
试试这个:
var widest;
var widestWidth = 0;
$("#myTable td").each(function(t) {
if($(this).width() > widestWidth){
widest = $(this);
widestWidth = $(this).width();
}
});
//Now widest points to the widest element
注意我跟最宽的元素分开跟踪实际宽度。没有这种方法的替代解决方案是将width最大化为width = 0的虚拟元素,并将$(this).width()与widest.width()进行比较
编辑:或者,或者,现在我意识到你只想要宽度而不是实际元素,你可以使用这个版本:
var widestWidth = 0;
$("#myTable td").each(function(t) {
widestWidth = Math.max(widestWidth, $(this).width());
});
答案 3 :(得分:2)
var widestTdLabel=0;
$('#myTable td').each(function(index) {
if($(this).find('label').width()>widestTdLabel)
widestTdLabel=$(this).find('label').width();
});
alert(' width of the widest label is:'+widestTdLabel);
答案 4 :(得分:0)
这应该有用 - 它将遍历每个tds(在myTable中)并找到最宽的:
var widest = 0;
$("#myTable tr td:first").each(function()
{
widest = ($(this).width() > widest) : $(this).width() : widest;
});
或者:
var widest = 0;
$("#myTable tr td:first").each(function()
{
if($(this).width() > widest){
widest = $(this).width()
}
});