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