2013-07-03 29 views
0

在我的HTML頁面我有自己的ID可以改變一切的時候,它看起來類似的東西(我有大約140鏈接)一個許多環節:如何獲得未知元素ID在Java腳本

<a id=33 onclick="javascriptfunction()" 
      href="33">link1</a> 
<a id=37 onclick="javascriptfunction()" 
      href="37">link2</a> 
<a id=113 onclick="javascriptfunction()" 
      href="113">link3</a> 
<a id=3 onclick="javascriptfunction()" 
      href="3">link4</a> 
      ..... 
      ..... 
      ..... 

客戶端可以隨機選擇其中的一個,我想在javascriptfunction() 中執行操作,當然這是基於它們的元素ID在JavaScript中執行的。

有沒有辦法讓JavaScript(沒有jQuery)被點擊的鏈接元素ID?

+3

首先,你需要圍繞你的身份證'''。下一步:ID不能以數字開頭! –

+1

@BramVanroy - HTML5,身份證現在可以用任何東西開始:) – tymeJV

+0

是的,忘了添加那些:) – Canttouchit

回答

4

事情是這樣的......

<a id=2 onclick="javascriptfunction(this)" 
      href="#">link4</a> 

// In javascript 
function javascriptfunction(element){ 
    var id = element.id; 
} 
3

你可以試試:

<a id=3 onclick="return javascriptfunction(this)" href="3">link4</a> 

function javascriptfunction(ID){ 
    alert(ID.id); 
    return false; 
} 
+0

甚至可能是'javascriptfunction(this.id)'? – mishik

+0

它不會像你輸入的那樣工作,你發送了這個,並且這是錨定 – EnterSB

+0

但是...你提醒'this'的對象,你的意思是'ID.id' – tymeJV

2
<script> 
function javascriptfunction(id) 
{ 
    alert("You clicked a tag with the id "+ id); 
} 
</script> 
<a id=33 onclick="javascriptfunction(this.id)"/> 

您可以使用此。

-1

也許使用jQuery!這裏是example

$("div").on('click', 'button' , function(obj){ 
    alert(obj.target.id); 
}); 
+1

OP顯式要求提供非jQuery解決方案。 – orique

+1

[什麼時候「使用jQuery」不是JavaScript問題的有效答案?](http://meta.stackexchange.com/a/48201/186560)以下所有內容適用於:1)這是完整的答案,沒有解釋究竟jQuery如何幫助,2)當問題可以簡單地沒有jQuery解決,3)當問題明確地要求沒有JavaScript框架 – apsillers

0

如果你不想更改HTML標記的所有140+鏈接,你也可以注入在<head>部分下面的JavaScript代碼:

window.onload = function() { 
    var anchors = document.getElementsByTagName("a"); 
    for (var i = 0; i < anchors.length; i++) { 
     var anchor = anchors[i]; 
     var id = anchor.id; 
     if (id && id.length > 0) { 
      anchor.onclick = function() { 
       RealClickHandler(this.id); 
       return false; 
      }; 
     } 
    } 
}; 

這將覆蓋現有的onclick的所有鏈接,並調用不同的函數傳遞它的ID。示例功能可能如下所示:

function RealClickHandler(id) { 
    alert("anchor with id " + id + " was clicked"); 
} 

Live test case