获取数据目标并使用 jquery 放入 var

get data-target and put into var with jquery

我想这是一个非常基本的问题,但我真的没有让它工作。

在打开模式弹出窗口之前,我正在使用 js 读取三个数据目标。

var x = 2;
$('#confirm-delete').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('onclick', 'location.href=\'' + $(e.relatedTarget).data('href') + '\'');
$(this).find('input.timee').val($(e.relatedTarget).data('timess'));
$(this).find('input.prodtotext').val($(e.relatedTarget).data('prodid'));
$("#proddropchange").val(x.toString()).trigger('change');
});

此代码工作正常,但我想删除将数据目标 "data-prodid" 放入输入 "prodtotext" 的第 4 行。在 return 中,我想读出数据目标 "data-prodid" 并将此值放入 "var x = 2"

我使用该值设置下拉列表的预选值,该值在每个打开的模式弹出窗口中都不同。

我认为应该可行的方法:

$('#confirm-delete').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('onclick', 'location.href=\'' + $(e.relatedTarget).data('href') + '\'');
$(this).find('input.timee').val($(e.relatedTarget).data('timess'));
$("#proddropchange").val(x.toString()).trigger('change');
var x = $(this).data("prodid");
});

你需要在函数外声明x

var x;
$('#confirm-delete').on('show.bs.modal', ....

建议:

1. Cache $ elements in var $this = $(this);
2. $(this).find('.btn-ok').on('click', function(){ location.href = ....})

终于找到了我的解决方案。谢谢你的建议。

$('#confirm-delete').on('show.bs.modal', function(e) {
$(this).find('.btn-ok').attr('onclick', 'location.href=\'' + $(e.relatedTarget).data('href') + '\'');
$(this).find('input.timee').val($(e.relatedTarget).data('timess'));
thisdata = $(e.relatedTarget).data('prodid');
$("#proddropchange").val(thisdata.toString()).trigger('change');