javascript - jQuery : Illegal Invocation Error While Taking Attribute Values from Button

标签 javascript jquery html ajax

我有一个 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/

相关文章:

Javascript - 将数组声明为变量并切片

javascript - 显示来自 Firestore 时间戳的日期(不是时间)

javascript - 为什么 package-lock.json 列出的依赖项与 package.json 不同?

jquery - 经过一系列操作后,如何将元素重置为原始状态?

jquery - 悬停时逐行突出显示段落

html - 在 Bootstrap 中截断长链接

javascript - 如何在数组对象的嵌套数组的条件上使用 While 循环?

javascript - 单击链接时显示/隐藏 div

html - 使用 ffmpeg 进行自适应压缩

html - 左侧边框未显示在菜单栏上