Jquery 右键单击上下文菜单,从(动态)数据表中的行中检索特定单元格值

Jquery 右键单击上下文菜单,从(动态)数据表中的行中检索特定单元格值,jquery,ajax,dynamic,datatable,Jquery,Ajax,Dynamic,Datatable,我正在使用Ajax源数据表来显示我的内容 在它上面,我使用了上下文菜单。但我定制了它,因为我希望它是动态的 我希望根据数据表中ActivityStatus列(第6列)中的值填充contextmenu项。为此,我必须检索该列的值 请帮助我在触发关联菜单时检索该值 var contxtM={ "contextMain": [ { "actstatus": "Draft",

我正在使用Ajax源数据表来显示我的内容

在它上面,我使用了上下文菜单。但我定制了它,因为我希望它是动态的

我希望根据数据表中ActivityStatus列(第6列)中的值填充contextmenu项。为此,我必须检索该列的值

请帮助我在触发关联菜单时检索该值

    var contxtM={
                "contextMain": [
                    {
                        "actstatus": "Draft",
                        "contextmenu": "edit,delete,submit"
                    },
                    {
                        "actstatus": "Completed",
                        "contextmenu": "delete"
                    },
                    {
                        "actstatus": "Awaiting",
                        "contextmenu": "edit,delete,modify"
                    }
                ]
            };

        $('#datatb tbody').contextMenu({
            selector: 'tr', 
            build: function($trigger, e) {
                var dynamicContextMenu; 
                //I want this actSt to be retrived from datatable here
                var actSt = "Draft";
                var menustr;
                for(var i=0;i<contxtM.contextMain.length;i++){
                    if(actSt==contxtM.contextMain[i].actstatus){
                         menustr =contxtM.contextMain[i].contextmenu;
                    }
                }
                    /* alert(menustr); */
                var menu= menustr.split(","); 
                var arrayitems= new Array();                
                $.each( menu, function( i, val ) {
                        arrayitems.push("'"+val+"': {name: '"+val+" Activity'}");
                });
                dynamicContextMenu="{"+arrayitems.join()+"}";
                var json = JSON.stringify(eval("(" + dynamicContextMenu + ")"));
                var dynamicContextMenu = jQuery.parseJSON(json);
                return {
                    callback: function(key, options) {
                        alert(key+"  "+$(this).text());
                    },  
                    items: dynamicContextMenu
                };
                }
        });
但当我在简单的点击上使用它时,它确实起作用

    $('#datatb tbody').on('click', 'tr', function () { 
            alert($('td',this).eq(6).text());
    });
请帮助我在触发关联菜单时检索值。

首先“从0开始”

    var contxtM={
                "contextMain": [
                    {
                        "actstatus": "Draft",
                        "contextmenu": "edit,delete,submit"
                    },
                    {
                        "actstatus": "Completed",
                        "contextmenu": "delete"
                    },
                    {
                        "actstatus": "Awaiting",
                        "contextmenu": "edit,delete,modify"
                    }
                ]
            };

        $('#datatb tbody').contextMenu({
            selector: 'tr', 
            build: function($trigger, e) {
                var dynamicContextMenu; 
                //I want this actSt to be retrived from datatable here
                var actSt = "Draft";
                var menustr;
                for(var i=0;i<contxtM.contextMain.length;i++){
                    if(actSt==contxtM.contextMain[i].actstatus){
                         menustr =contxtM.contextMain[i].contextmenu;
                    }
                }
                    /* alert(menustr); */
                var menu= menustr.split(","); 
                var arrayitems= new Array();                
                $.each( menu, function( i, val ) {
                        arrayitems.push("'"+val+"': {name: '"+val+" Activity'}");
                });
                dynamicContextMenu="{"+arrayitems.join()+"}";
                var json = JSON.stringify(eval("(" + dynamicContextMenu + ")"));
                var dynamicContextMenu = jQuery.parseJSON(json);
                return {
                    callback: function(key, options) {
                        alert(key+"  "+$(this).text());
                    },  
                    items: dynamicContextMenu
                };
                }
        });
所以您需要传递n-1以访问第n个元素

使用以下jquery脚本获取第6列文本:

var currentTr = e.currentTarget;                
var actSt = $(currentTr).find('td:eq(5)').text();
您的代码如下所示:

 var contxtM={
            "contextMain": [
                {
                    "actstatus": "Draft",
                    "contextmenu": "edit,delete,submit"
                },
                {
                    "actstatus": "Completed",
                    "contextmenu": "delete"
                },
                {
                    "actstatus": "Awaiting",
                    "contextmenu": "edit,delete,modify"
                }
            ]
        };

    $('#datatb tbody').contextMenu({
        selector: 'tr', 
        build: function($trigger, e) {
            var dynamicContextMenu; 
            //I want this actSt to be retrived from datatable here

            var currentTr = e.currentTarget;                
            var actSt = $(currentTr).find('td:eq(5)').text();
            //var actSt = "Draft";
            var menustr;
            for(var i=0;i<contxtM.contextMain.length;i++){
                if(actSt==contxtM.contextMain[i].actstatus){
                     menustr =contxtM.contextMain[i].contextmenu;
                }
            }
                /* alert(menustr); */
            var menu= menustr.split(","); 
            var arrayitems= new Array();                
            $.each( menu, function( i, val ) {
                    arrayitems.push("'"+val+"': {name: '"+val+" Activity'}");
            });
            dynamicContextMenu="{"+arrayitems.join()+"}";
            var json = JSON.stringify(eval("(" + dynamicContextMenu + ")"));
            var dynamicContextMenu = jQuery.parseJSON(json);
            return {
                callback: function(key, options) {
                    alert(key+"  "+$(this).text());
                },  
                items: dynamicContextMenu
            };
            }
    });
var contxtM={
“contextMain”:[
{
“actstatus”:“草稿”,
“上下文菜单”:“编辑、删除、提交”
},
{
“actstatus”:“已完成”,
“上下文菜单”:“删除”
},
{
“actstatus”:“等待”,
“上下文菜单”:“编辑、删除、修改”
}
]
};
$('#datatb tbody')。上下文菜单({
选择器:“tr”,
构建:函数($trigger,e){
var dynamicContextMenu;
//我想从这里的数据表中检索这个actSt
var currentTr=e.currentTarget;
var actSt=$(currentTr).find('td:eq(5)').text();
//var actSt=“草稿”;
var menustr;
对于(var i=0;i