我有一个 JQuery 和 AJAX 调用可以工作,但出现如下错误:
Uncaught TypeError: Illegal invocation(…)
在这种情况下,我想从创建的自定义属性中获取值
<button class='btn btn-danger' onclick='delete_subject_function(this)' id='question_delete' value='$subject_id3' data-class='$class_id3' data-school='$schools_id3'><i class='fa fa-trash' aria-hidden='true'></i></button>
为了从按钮获取值,我使用以下代码,但它给了我一个错误。
例如,我想获取属性值 data-school 、 data-class 和 value,因此我使用 e.getAttribute('data-school');就像代码一样。
这是 JQUERY 代码:
$(document).ready(function(){
delete_subject_function = function(e){
var school_id = e.getAttribute('data-school');
var class_id = e.getAttribute('data-class');
var value = e.getAttribute('value');
if(school_id){
$.ajax({
type:'POST',
url:'delete_subject.php',
data:{delete_subject:school_id,class_id :class_id,value :value},
success:function(data){
refresh_subject();
}
});
}else{
alert("Subject that you want to delete has no ID");
}
}
});
最佳答案
只是一个猜测,但你可以尝试像这样重组:
$(document).ready(function(){
$('[id^=question_delete']).click(function(){
var school_id = $(this).data('school');
var class_id = $(this).data('class');
var value = this.value;
alert(value);
if(value.length){
$.ajax({
type:'POST',
url:'delete_subject.php',
data:{'delete_subject' : school_id},
success:function(data){
if (data.length) alert(data);
refresh_subject();
}
});
}else{
alert("Subject that you want to delete has no ID");
}
});
});
<button class='btn btn-danger' id='question_delete' value='$subject_id3' data-class='$class_id3' data-school='$schools_id3'><i class='fa fa-trash' aria-hidden='true'></i></button>
注释:
(1) 使用 $('[id^=what_it_starts_with'])
将单击事件绑定(bind)到 ID 以“question_delete
开头”的所有元素(例如)
关于javascript - jQuery : Illegal Invocation Error While Taking Attribute Values from Button,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133980/