【发布时间】:2020-01-15 07:17:01
【问题描述】:
我有以下代码:
var jqxhr = $.get(url, function(downloadedPage) {
//alert("success");
})
.done(function(downloadedPage) {
var newRows = $(downloadedPage).find("table.articles tbody");
var rowsToAdd = [];
alert (newRows.html().split("<tr>").length); // gives 733
$("BODY").after("<code>" + escapeHtml(newRows.html()) + "</code>"); // prints a list of <tr></tr> : 733 lines
newRows.find("tr").each(function(index) {
alert(index); // goes up to 1464
var row = $(this);
rowsToAdd.push("<tr>" + row.html() + "</tr>");
});
alert(rowsToAdd.length); // gives 1464
我不明白为什么这段代码在 rowsToAdd 中插入了两倍的行数...为什么使用 733 行的容器,它会“接近”两倍的行数(733 vs 1464)。
如果我替换第一个电话:
$(downloadedPage).find("table.articles tbody");
与
$(downloadedPage).find("table.articles:first tbody");
那么问题就解决了。
谁能解释一下那里出了什么问题?
【问题讨论】:
-
同时添加一些 html。您可能有 2 个元素与您的 html 上的“table.articles tbody”选择器匹配
-
@MKougiouris 好的,就是这样,但即使这样,我也不明白为什么使用 733 行容器,它会“接近”两倍的行数(733 对 1464) .
-
好吧...也添加 html。我们正在做你知道的编程,而不是黑魔法 :P 我想这可能只是一些换行符人工制品,不看任何东西就很难分辨。我会在评论中回答,我真的很喜欢我的一些代表,就像下一个人一样:D
标签: jquery find iteration each