JQuery查找表行中对象==表数据

JQuery find table row where Object == Table Data

本文关键字:数据 对象 查找 JQuery      更新时间:2023-09-26

我见过类似的问题,但似乎没有什么适合我。

我在我的JQuery中有一个AJAX调用,它返回一个组名称列表,然后,对于列表中的每个对象,我需要通过表查找匹配并更改行中一个单元格的类。所以基本上:

  1. AJAX返回JSon结果与List<string>与组名。
  2. 查找List object == TD.Text()所在的td。
  3. 改变一个类在表行(我知道如何做到这一点,所以不重要)
Jquery

$("#UserGridView_DXMainTable .dxgv").click(function () {
            //Get data to send to controller
                $.ajax({
                    url: '@Url.Action("GetUserGroups", "Home")',
                    data: { 'userLogin': insertText },
                    type: "post",
                    datatype: 'json',
                    cache: false,
                    success: function (data) {
                        if (!jQuery.isEmptyObject(data)) {
                            data.GroupNames.each(function () { <== Is this correct?
                             <====== I cannot seem to find a working solution for here.
                            })
                        }
                    }
                });
            });
    });
控制器

public JsonResult GetUserGroups(string userLogin)
        {
            if (userLogin != null)
            {
                Manager manager = new Manager();
                var details = manager.GetUserData(userLogin);
                var userGroupsID = details.GroupsId;
                List<string> GroupNames = new List<string>();
                for(var i = 0; i < userGroupsID.Count(); i++)
                {
                    var Gdetails = manager.GetGroupData(userGroupsID[i]);
                    var GName = Gdetails.Name;
                    GroupNames.Add(GName);
                }
            return Json(new { GroupNames = GroupNames }, JsonRequestBehavior.DenyGet);
        }
        return Json(new { }, JsonRequestBehavior.DenyGet);
    }
我愿意接受所有的建议,如果你还想知道什么,请告诉我。由于编辑:

返回数据示例:

数据。GroupNames = ["Default", "Normal User", "Manager"等]

所以如果我理解正确,GroupNames是文本数组,您正在查看此文本是否与td中的任何文本匹配?

    $tds = $('td');
    $.each(data.GroupNames, function (index, val) {
        console.log(val + ' ' + index);
        $tds.each(function(){
            if($(this).text() === val){
                console.log('found');
            }
        });
    });

演示

算法可以通过每次匹配时删除td来优化(除非td可以匹配多个groupname)

请更改控制器

返回Json(new {}, JsonRequestBehavior.DenyGet);-->返回Json(new {}, JsonRequestBehavior.AllowGet);