无法获取表中第一列的width()

时间:2012-03-04 15:48:04

标签: jquery

我需要获得表格中第一列的宽度。我做了以下事情:

var table = $(".myTable");
var firstColumnWidth = table.find("th:first").innerWidth();

HTML:

<table class="">
<tr>
  <th></th>
  <th>col 2</th>
</tr>
</table>

我得到“0”,即使我在调试时添加边框,我看到它至少有300px宽。

table.find("th:first").css("border","1px solid red");

我错过了什么?

3 个答案:

答案 0 :(得分:2)

这应该可以解决您的问题。我使用以下任一方法获得131px

$('.table th:first-child').width()

你的风格也是我同样的输出

$('.table').find('th:first-child').width()

这是我的标记

<table class="table">
    <tr>
        <th>sdfsdfdsfasdsdd</th>
        <th>dsfdsfds</th>
        <th>sdfds</th>
        <th>hgthrhdgdfgdf</th>
        <th>fdgdfgdf</th>
        <th>fdgdfgdf</th>
    </tr>
    <tr>
        <td>fdgfdgdfgdfg</td>
        <td>fgh5hfhgdf</td>
        <td>dfgfdgdf</td>
        <td>dfgdfgdf</td>
        <td>dfgdfgdf</td>
        <td>dfgdf</td>
    </tr>
    <tr>
        <td>fdghtfg</td>
        <td>dfgfdgdfg</td>
        <td>fgdf</td>
        <td>dgfg</td>
        <td>fg</td>
        <td>ddddddddddd</td>
    </tr>        
</table>

答案 1 :(得分:1)

试试$('.myTable').find('tr:first').width()。这是因为即使您使用<td>,浏览器也会在<tr>内呈现<th>

演示:http://jsfiddle.net/W8ejn/

答案 2 :(得分:0)

查看 LIVE DEMO

var table = $(".myTable");
var firstColumnWidth = table.find("th:first").innerWidth();
alert(firstColumnWidth);
alert(table.find("th:first").width());

对于 .innerWidth() .width() ,结果为 128