2013-07-03 25 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