在内联函数中获取属性data- *的值

时间:2016-11-10 22:58:46

标签: javascript

我有一个数据属性data-niq,我用它来存储一些数据。我想将*-niq中的数据作为函数的第二个参数传递给函数。

这是代码

<button onClick="editevent(this.id,this.id.getAttribute('data-niq'));" id="mid" data-niq="niq" class="mr edit btn btn-success pull-right"> Edit</button>

<script>
function editevent(clicked_id,attri_bute){
console.log('clicked id',clicked_id);
console.log('data-niq',attri_bute);
}
</script>

和链接https://jsfiddle.net/codebreaker87/zob8dm4z/8/

当我运行代码时,我得到TypeError: this.id.getAttribute is not a function

如何在我调用的内联函数中传递data-niq值?。

2 个答案:

答案 0 :(得分:2)

这里很少有东西

  1. 永远不要将您的标记与javascript混合
  2. 尝试在javascript端绑定事件。
  3. 检查以下代码段。

    window.onload = function() {
    
      var mid = document.getElementById("mid");
      mid.addEventListener('click', function() {
        editevent(this);
      })
    }
    
    function editevent(thisObj) {
    
      var id = thisObj.getAttribute('id');
      var dataniq = thisObj.getAttribute('data-niq');
      alert(id);
      alert(dataniq);
    }
    <button id="mid" data-niq="niq" class="mr edit btn btn-success pull-right">Edit</button>

    希望有所帮助

答案 1 :(得分:1)

您已添加this.id.getAttribute(&#39; data-niq&#39;);

删除ID

this.getAttribute('data-niq')