Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 单击相应按钮时在datatables中获取ID_Jquery_Datatables - Fatal编程技术网

Jquery 单击相应按钮时在datatables中获取ID

Jquery 单击相应按钮时在datatables中获取ID,jquery,datatables,Jquery,Datatables,我正在使用Datatables和Jquery构建我的应用程序。我正在从服务器将数据提取到表中。该表有3列,每列表示委托ID、委托名称和一个按钮“Add”。我想检索所单击的相应添加按钮的ConsistingID var oTable = $('#viewAllConsignments').DataTable( { "aaSorting": [ ], // Prevent initial sorting "sAjaxSource": "

我正在使用Datatables和Jquery构建我的应用程序。我正在从服务器将数据提取到表中。该表有3列,每列表示委托ID、委托名称和一个按钮“Add”。我想检索所单击的相应添加按钮的ConsistingID

var oTable = $('#viewAllConsignments').DataTable( {
                "aaSorting": [ ], // Prevent initial sorting
                "sAjaxSource": "getConsignment",
                "sAjaxDataProp": "",
                "sServerMethod" : "POST",
                "bProcessing": true,
                 "aoColumns": [
                        { "mData": "consignment.consignmentId"},
                        { "mData": "consignment.consignmentName" },
                        { "mData": "consignment.consignmentId",
                          "bSortable": false, 
                          "mRender": function(data, type, full) {
                                    return '<button type="button" id="btn-packets" class="btn btn-success btn-packets">Add</button>';
                            }
                        }
                ]


        });
var-oTable=$(“#查看所有委托”)。数据表({
“aaSorting”:[],//防止初始排序
“sAjaxSource”:“Get寄售”,
“sAjaxDataProp”:“,
“sServerMethod”:“POST”,
“bProcessing”:正确,
“aoColumns”:[
{“mData”:“寄售.寄售ID”},
{“mData”:“寄售.寄售名称”},
{“mData”:“寄售.寄售ID”,
“可移植”:错误,
“mRender”:功能(数据、类型、完整){
返回“添加”;
}
}
]
});

尝试这样做:
将数据属性添加到添加按钮。


对于构建数据时的每一行,将
数据委托ID=“数据库值”
添加到您的按钮,并在按钮上单击执行此操作:
$(this).data(委托ID)//所需id

永远不要使用重复的
id
的-
id=“btn packets”
-您可以使用
.btn packets

为什么不将
寄售。寄售ID
(=
数据
)存储为按钮本身的数据属性

...
mRender: function(data, type, full) {
   return '<button data-consignmentId="'+data+'" class="btn btn-success btn-packets">Add</button>';
}
...

也可以使用良好的旧
attr()

return '<button consignmentId="'+data+'" class="btn btn-success btn-packets">Add</button>';
alert($(this).attr('consignmentId'));
请注意,我已经交换了
'
stringify
使用
返回字符串

现在,
data('row')
在单击处理程序中保存您可以立即访问的整个对象。即使数据作为字符串插入,它也将返回有效的JSON:

alert($(this).data('row').consignment.consignmentName);

如果我们可以在没有
stringify()
的情况下分配数据,那么就更容易了
data()
意味着能够保存对象,但类似于
$(结果)。数据('row',full)
将不起作用,因为呈现按钮在从
mRender
返回时不是DOM的一部分,它只是一个普通字符串

对于构建数据时的每一行,将数据委托ID=“database value”添加到您的按钮,并在按钮上单击“执行此操作”:嘿,我尝试执行此操作,但始终在警报框中显示“未定义”。我检查了每个按钮,并将数据委托ID设置为相应的委托。委托ID。但警报框仍显示未定义:-(@vkm-oh yes,jQuery在内部将数据attr小写,请尝试
alert($(this).data('commissionId'))
制作了这个小示例->来演示这个问题。一个“有效的”HTML5数据属性将是
数据寄售id
,但这将更加令人困惑。我认为jQuery这样做相当烦人。如果您根本无法使用
attr
,请使用
寄售id=“”+data+”
警报($(this).attr('寄售id'))
-我建议数据属性只是为了兼容HTML5,但谁真正在乎呢:)该死!我一个人可能永远也想不到。非常感谢你!工作很有魅力。嘿,大卫,再问我一个问题。如果我想在按钮点击时传递多个数据,比如委托名称和委托ID,该怎么办?嘿,我试过这么做,但我总是在警报框中得到“未定义”的信息。
return "<button data-row='"+JSON.stringify(full)+"' class='btn btn-success btn-packets'>Add</button>";
alert($(this).data('row').consignment.consignmentName);