Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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
Javascript 无法从数据属性提取文本_Javascript_Jquery_Bootstrap Table - Fatal编程技术网

Javascript 无法从数据属性提取文本

Javascript 无法从数据属性提取文本,javascript,jquery,bootstrap-table,Javascript,Jquery,Bootstrap Table,我有一个引导表,每行包含一个编辑按钮。我使用了一个数据格式化程序来传递记录的id,其中包含一个数据属性,单击该属性时可以提取该属性。当我在控制台中检查元素时,我可以看到ID在dataset属性中,但是当我尝试使用element.dataset将其取出时,控制台包含一个错误,告诉我dataset未定义。这是令人沮丧的,因为我可以看到它在那里 以下是我的点击事件: $(".job-edit").click(function(event) { var editModal = $("#jobEd

我有一个引导表,每行包含一个编辑按钮。我使用了一个数据格式化程序来传递记录的id,其中包含一个数据属性,单击该属性时可以提取该属性。当我在控制台中检查元素时,我可以看到ID在dataset属性中,但是当我尝试使用element.dataset将其取出时,控制台包含一个错误,告诉我dataset未定义。这是令人沮丧的,因为我可以看到它在那里

以下是我的点击事件:

$(".job-edit").click(function(event) {
    var editModal = $("#jobEditModal");
    var clicked = $(event.target);
    var id = clicked.dataset.jobid;
    console.log(id);
    event.stopPropagation();
    //editModal.modal(); 
});
以及设置按钮的格式化程序:

job.editFormatter = function (value) {
    return "<button class='btn job-edit text-center' data-jobId='" + value + "'><i class='fa fa-pencil-square-o' aria-hidden='true'></i> Edit</button>";
}
job.editFormatter=函数(值){
返回“编辑”;
}

到目前为止,我已经尝试将
.dataset
替换为
.getAttribute()
,但这也不起作用,我还尝试将
jobid
的大小写改为
jobid
,除此之外,我不确定是什么导致了问题。

您的问题是因为单击的
是一个jQuery对象,它没有
数据集
属性

要解决此问题,需要使用本机元素引用:

var id = e.target.dataset.jobid;
或者,使用jQuery对象的
data()
方法:

var id = clicked.data('jobid');

不使用
dataset
,您可以通过使用jquery的
.data()
方法直接获取
jobid
,如下所示。由于单击的
变量是一个jquery对象,没有定义
dataset

$(“.job edit”)。单击(函数(事件){
var editModal=$(“#jobEditModal”);
var id=$(this.data(“jobid”);
console.log(id);
event.stopPropagation();
//editModal.modal();
});


编辑
try-
clicked.data('jobid')
clicked.attr('data-jobid')
使用控制台中未定义的
jobid
给定
id
。这不应该是jobid吗?@Niladri你说得对。我的打字习惯是大写“Id”: