2016-11-10 96 views
0

我有一個數據屬性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

的答案很簡單,停止使用內聯JavaScript – adeneo

+1

在'this.id.getAttribute擺脫'.id'的('數據NIQ 「)'。不過,我也建議你停止使用內聯JavaScript。 –

回答

2

此列舉幾個東西

  1. 決不JavaScript的
  2. 嘗試混音標記綁定在JavaScript結束事件。

請檢查以下代碼段。

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

完美的答案。以下是大多數時候爲什麼內聯javascript不好的參考:http://softwareengineering.stackexchange.com/questions/86589/why-should-i-avoid-inline-scripting –

+0

非常感謝的人。採取的點。 –

1

你已經添加了this.id.getAttribute('data-niq');

刪除ID

this.getAttribute('data-niq')