Jquery 选择每个表体的tr时计数错误

Jquery 选择每个表体的tr时计数错误,jquery,Jquery,我的视图中有多个表,我想获得每个表的tbody中所有tr的计数 我的表如下所示: 这导致了13,当我计算时,它包括表中每个元素中的行。数字应为8。如何使其不包括thead元素中的行 我想我不必使用。每个,因为该查询应该获得所有表元素,对吗 更新 在点击链接记录行之后,我看到额外生成的5行,它们都有如下的innerHTML: "<td title="" class="xdsoft_date xdsoft_day_of_week0 xdsoft_date xdsoft_other_month

我的视图中有多个表,我想获得每个
表的
tbody
中所有
tr
的计数

我的
如下所示: 这导致了
13
,当我计算时,它包括表中每个
元素中的行。数字应为
8
。如何使其不包括
thead
元素中的行

我想我不必使用
。每个
,因为该查询应该获得所有表元素,对吗

更新

在点击链接记录行之后,我看到额外生成的5行,它们都有如下的innerHTML:

"<td title="" class="xdsoft_date xdsoft_day_of_week0 xdsoft_date xdsoft_other_month xdsoft_weekend" data-year="2017" data-month="11" data-date="31"><div>31</div></td><td title="" class="xdsoft_date xdsoft_day_of_week1 xdsoft_date" data-year="2018" data-month="0" data-date="1"><div>1</div></td><td title="" class="xdsoft_date xdsoft_day_of_week2 xdsoft_date" data-year="2018" data-month="0" data-date="2"><div>2</div></td><td title="" class="xdsoft_date xdsoft_day_of_week3 xdsoft_date" data-year="2018" data-month="0" data-date="3"><div>3</div></td><td title="" class="xdsoft_date xdsoft_day_of_week4 xdsoft_date" data-year="2018" data-month="0" data-date="4"><div>4</div></td><td title="" class="xdsoft_date xdsoft_day_of_week5 xdsoft_date" data-year="2018" data-month="0" data-date="5"><div>5</div></td><td title="" class="xdsoft_date xdsoft_day_of_week6 xdsoft_date xdsoft_weekend" data-year="2018" data-month="0" data-date="6"><div>6</div></td>"
“31123456”

我不知道这些是从哪里生成的。

这里的实际问题是datetimepicker插件生成的隐藏表。OP通过向所需的
tbody
元素添加类来解决这个问题,这些元素允许它们识别选择器中的那些元素

下面剩下的是一个正在进行的尝试,以表明所述代码正在工作


在我的盒子上工作。当我在Windows 10上的Chrome版本63.0.3239.132(官方版本)(64位)中运行以下代码时,它会记录2,这是我在这个HTML中所期望的。。。在Firefox58中工作。甚至可以使用Edge。见鬼,它甚至可以在IE11中使用

$(函数(){
var myTable=$(“#表一”);
var countAllTablesRows=$(“table tbody tr”)。长度;
console.log(countAllTablesRows);//给出正确的8
myTable.on(“单击”,
“.js删除”,
职能(e){
var-link=$(这个);
var行=$(this.parents(“tr”);
var countAllTablesRowsInsideMethod=$(“表tbody tr”).length;
console.log(countAllTablesRowsInsideMethod);//给出了错误的#,共13个
e、 预防默认值();
});
});

标题一
标题二
测试
测试
标题一
标题二
测试
测试
测试
Count在下面的演示中按预期显示了
3行。
这表明您在手动计数行时出错。也许有一些隐藏的。请与浏览器的检查器联系

当你点击
delete
按钮时,你的代码中的其他地方肯定发生了一些事情,而你的问题中没有足够的信息。此外,这是一个非常具体的场景,可能是人为的设计错误

var tbodyrowscont=$(“表tbody tr”).length;
log(“tBody中的行:”,tBodyRowsCount)

A.
B
C
1.
2.
3.
1.
2.
3.
1.
2.
3.

嗯。。。“应该是1吗?”米克姆卡恩编辑道。。我的
t车身
位于
foreach
循环内。我有多个表,它们看起来与我发布的表完全相同。这显示了正确的数字,您使用的是什么版本的jquery?另外,您使用的是什么浏览器?可以附加生成的代码而不是循环。您确定页面上没有其他表吗?唯一的区别是执行语句的时间。必须添加一些您没有想到的表或行。尝试记录这13行,看看有什么是您不期望的。@MikeMcCaughan ah明白了,是的,我刚刚向所有
tbody
元素添加了一个类,并将我的jQuery更改为
var countAllTablesRowsInsideMethod=$(“table tbody.pic-tbody tr”).length并且它给出了正确的#!我回复了您的评论并编辑了我的问题,以反映我的
t正文中的
foreach
语句,这无关紧要。关键是它不是在记录2,如果它在计算
thead
元素中的行,它就会记录2。这“jquery没有问题”不应该是一个注释而不是答案吗。很可能页面上有更多的表,而且数字是错误的,但是谁知道呢,如果您觉得JSFIDdle没有用,您可以随意进行向下投票。或者,如果你觉得它的质量很低,就标记它。我想我没必要告诉你,@Huangism。。。
var myTable = $("#Table-One");

var countAllTablesRows = $("table tbody tr").length;
console.log(countAllTablesRows); // gives correct # of 8 on page load

myTable.on("click",
    ".js-delete",
    function() {
        var link = $(this);
        var row = $(this).parents("tr");

        var countAllTablesRowsInsideMethod = $("table tbody tr").length;

        console.log(countAllTablesRowsInsideMethod); // gives incorrect # of 13 on click of the link
    });
"<td title="" class="xdsoft_date xdsoft_day_of_week0 xdsoft_date xdsoft_other_month xdsoft_weekend" data-year="2017" data-month="11" data-date="31"><div>31</div></td><td title="" class="xdsoft_date xdsoft_day_of_week1 xdsoft_date" data-year="2018" data-month="0" data-date="1"><div>1</div></td><td title="" class="xdsoft_date xdsoft_day_of_week2 xdsoft_date" data-year="2018" data-month="0" data-date="2"><div>2</div></td><td title="" class="xdsoft_date xdsoft_day_of_week3 xdsoft_date" data-year="2018" data-month="0" data-date="3"><div>3</div></td><td title="" class="xdsoft_date xdsoft_day_of_week4 xdsoft_date" data-year="2018" data-month="0" data-date="4"><div>4</div></td><td title="" class="xdsoft_date xdsoft_day_of_week5 xdsoft_date" data-year="2018" data-month="0" data-date="5"><div>5</div></td><td title="" class="xdsoft_date xdsoft_day_of_week6 xdsoft_date xdsoft_weekend" data-year="2018" data-month="0" data-date="6"><div>6</div></td>"