jquery - Jquery - 查找/每个触发两次
问题描述
我有以下代码:
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");
那么问题就消失了。
有人可以解释一下那里有什么问题吗?
解决方案
您的选择器选择了更多元素。如果:first
解决了您的问题,则意味着在没有它的情况下必须选择更多元素,因此选择是错误的。
由于容器上的差异,您可以添加您的 html 或对其进行修改,以便我们更好地检查它
推荐阅读
- python - 使用 groupby 按频率排序
- angular - 比较其余字符串角度
- python - 正则表达式匹配字符串的最后一个实例
- python - 如何将数据设置为多索引 DataFrame 的视图?
- python - SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1076)')
- r - 如何在 TraMineR 中使用来自 BORIS 的状态数据?
- python - 如何区分使用 python 进行 CV2 图像处理中的行?
- python-3.x - 具有相同字符的对角线 - Python
- go - 未从 list.List 中删除元素
- java - spring boot jar 未连接到 Kafka 代理(通过系统变量 java.security.auth.login.config 设置 client_jaas.conf)