0

使用 jQuery 的 Web 应用程序,我想添加分页。它在 Firefox 和 Chrome 上运行良好。但是在 IE 8 上它不能计算行数。

this.init = function () {
    var rows = document.getElementById(tableName).rows;
    var records = (rows.length);
    this.pages = Math.ceil(records / itemsPerPage);
    this.inited = true;
}

在 IE 8 中返回 0 的行,但所有其他浏览器给出正确的行数。

我将 html 表附加到 DIV 以下是我的表创建的 html

<TABLE style="PADDING-BOTTOM: 5px; PADDING-LEFT: 5px; PADDING-RIGHT: 5px; PADDING-TOP:     5px" class="pad white" border=0 cellSpacing=1 cellPadding=1 width="100%">
<TBODY>
<TR>
<TD bgColor=#0f4d79 width="10%">
<DIV align=center><STRONG>#</STRONG></DIV></TD>
<TD bgColor=#0f4d79 width="10%">
<DIV align=center><STRONG>Date</STRONG></DIV></TD>
<TD bgColor=#0f4d79 width="20%">
<DIV align=center><STRONG>Customer</STRONG></DIV></TD>
<TD bgColor=#0f4d79 width="30%">
<DIV align=center><STRONG>Description</STRONG></DIV></TD>
<TD bgColor=#0f4d79 width="10%">
<DIV align=center><STRONG>Status</STRONG></DIV></TD>
<TD bgColor=#0f4d79 width="20%">
<DIV align=center><STRONG>Amount</STRONG></DIV></TD></TR></TBODY></TABLE>
<DIV class=border-middle>
<TABLE id=**tblIncomeListData** class=pad border=0 cellSpacing=0 cellPadding=0        width="100%">
<TR class=even jQuery172016229059503345766="72">
<TD style="DISPLAY: none" vAlign=top width=0% align=middle>30</TD>
<TD vAlign=top width="10%" align=middle>00001</TD>
<TD vAlign=top width="10%" align=middle>May 28, 2013</TD>
<TD vAlign=top width="20%" align=middle>test1</TD>
<TD vAlign=top width="30%" align=middle>Other Income </TD>
<TD vAlign=top width="10%" align=middle>Paid</TD>
<TD style="TEXT-ALIGN: right" vAlign=top width="20%">OMR444.00</TD></TR></TABLE></DIV>
4

3 回答 3

1

这很奇怪,我认为 IE8 支持该rows属性。(编辑:确实如此:http: //jsbin.com/ocufuf/1不过,我现在将把它留在原处......)

除非您在该表中嵌套了一个表(并且看起来不像您这样做),否则您可以将其替换为getElementsByTagName

var rows = document.getElementById(tableName).getElementsByTagName('tr');

或者当然,使用 jQuery(因为你说你正在使用它,尽管从你的代码示例中看不出来):

var rows = $("#" + tableName + " tr");

请注意,如果这样做,则必须更改表名,因为它对 HTML**tblIncomeListData**有效id,但对 CSS 无效。

如果你在做嵌套表,你仍然可以使用 jQuery 轻松获得计数:

var rows = $("#" + tableName).children('thead, tbody, tfoot').children('tr');
于 2013-05-28T10:09:58.670 回答
1

document.getElementById(table).getElementsByTagName("tr").length

于 2013-05-28T10:12:39.437 回答
0

由于您使用的是 Jquery,因此请使用以下代码获取行数。

var rows = $('#tableId tr').length;

另请注意,在 getElementById 之后,您使用了 tableName 变量。

不知道您是否将表的 id 存储在该变量中,但理想情况下,如果您使用getElementByIdor ,则必须传递表元素的 ID #tableId。希望这会有所帮助。

于 2013-05-28T10:17:48.180 回答