gpt4 book ai didi

javascript - 优化 JQuery 中的每个循环

转载 作者:行者123 更新时间:2023-11-30 09:59:38 24 4
gpt4 key购买 nike

我有一个 JQuery 的工作片段,它在表中找到特定的行,然后对它做一些事情,我的问题是,有时,我有超过 2000 条数据来匹配一个 td 和超过 2000 行在表,因此可能需要很长时间。

(P.S 每个td只能匹配一次)

JQuery

$("#tableAName").on("click", "tr", function () {
//Get Some Data
$.ajax({
url: '@Url.Action("GetGroupRights", "Home")',
data: { 'groupName': insertText },
type: "post",
cache: false,
datatype: 'json',
success: function (data) { <=== data RETURNS LIST OF STRING WHICH MATCH TD'S
if (!jQuery.isEmptyObject(data)) {
$td = $('#tableBName td');
$.each(data.groupIDs, function (index, val) {
$td.each(function () {
if ($(this).text() === val) {
$(this).closest(".classY").addClass(".classX")
$(".classX").find(".classA").removeClass('classB').addClass('classC');


}
});
});
}
});
});

正如我之前提到的,这工作得很好,但可能会非常慢,有没有一种方法可以在找到某个行后不查看它?

谢谢,如果您有任何问题和/或需要更多信息,请询问

最佳答案

您可以通过表格来创建单元格值和元素引用的映射:

var map = {};
$("tableName td").each(function() {
map[$(this).text()] = this;
});

然后您的 ajax 回调可以执行此操作:

$.each(data.groupIDs, function (index, val) {
$(map[val]).find(".classA").removeClass("classB").addClass("classC");
});

(如果您在实际代码中总是像那样执行 .find(),那么您也可以在制作 map 时预先计算它。)

关于javascript - 优化 JQuery 中的每个循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32355116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com