2

出于某种原因,每次我尝试计算表中的行数时,它总是返回 1。我正在动态地向表中添加和删除行,所以我开始认为它只是计算最初配置的行数桌子。这是我正在使用的代码。

$(".elementDelRowButton").live ('click', function (event) {

console.log ($(this).closest('table').length);
                  if ($(this).closest('tr').index()!=0) {
                      $(this).parent().parent().remove();
                  }

            });

我尝试过使用大小、长度和其他变体,它总是返回 1。

这是HTML:

<table id="element_items"><tr>
  <td><input type="radio" name="radio" /></td>
  <td><input type="text" value="RadioItem"/></td>
  <td><span class="elementAddRowButton">+</span>/<span class="elementDelRowButton">-</span></td>
</tr>
</table>
4

3 回答 3

4

可能是您的源中有一个 tbody 围绕您的所有行。试试这个:

console.log($(this).closest('table').find('tr').length);

顺便说一句,“this.parent().parent().remove()”看起来很危险。您可能希望将选择器与“最近”功能一起使用。

于 2010-03-02T16:00:41.810 回答
2

console.log ($(this).closest('table').length); 只返回一个包含最接近标签“table”的jquery集合......该集合确实包含一个元素,即表本身,因为最接近返回匹配的第一个父级

console.log ($(this).closest('table').children("tr").length 应该给出行数

于 2010-03-02T16:03:34.477 回答
0

谢谢大家..这适用于我的情况:

console.log ($(this).closest('table').find('tr').length);

于 2010-03-02T16:12:37.310 回答