【问题标题】:JQuery : Illegal Invocation Error While Taking Attribute Values from ButtonJQuery:从按钮获取属性值时出现非法调用错误
【发布时间】:2016-12-14 10:54:31
【问题描述】:

我有一个有效的 JQuery 和 AJAX 调用,但它给出了如下错误:

未捕获的类型错误:非法调用(…)

在这种情况下,我想在创建时从自定义属性中获取值

<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>

并使用以下代码从按钮 i 获取值,但它给了我一个错误。

例如,我想获取属性值 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");
        }
    }
});

【问题讨论】:

  • 你读过S.O里的多重骗子吗
  • 感谢@Dagon 的回复并从您宝贵的时间中抽出时间但我不清楚您想说什么..
  • 我已经为你删除了 php 标签。创建问题时请注意生成的标签。它们被用作过滤器来查找问题,一个能够回答的问题。您可以自行管理选定的标签。 ;-)

标签: javascript jquery html ajax


【解决方案1】:

只是猜测,但您可以尝试像这样进行重组:

$(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");
    }
  });
});
	&lt;button class='btn btn-danger' id='question_delete' value='$subject_id3' data-class='$class_id3' data-school='$schools_id3'&gt;&lt;i class='fa fa-trash' aria-hidden='true'&gt;&lt;/i&gt;&lt;/button&gt;

注意事项:

(1) 使用$('[id^=what_it_starts_with']) 将点击事件绑定到ID“以”question_delete 开头的所有元素(例如)

【讨论】:

  • 感谢@gibberish 的回复,问题已解决,代码运行成功。
猜你喜欢
  • 1970-01-01
  • 2021-01-05
  • 2017-11-29
  • 1970-01-01
  • 2023-02-19
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
  • 2021-03-05
相关资源
最近更新 更多