提醒用户单击的链接的ID

时间:2013-03-23 20:25:35

标签: javascript onclick

我有几个链接,每个链接都有唯一的ID。我想调用单个函数,当单击任何链接时,用户会收到一条说明链接ID的警报。我很难过。这就是我所拥有的。我想用纯JavaScript做到这一点。

我的代码:

<p><a href="#" id="link0">Link0</a></p>
<p><a href="#" id="link1">Link1</a></p>
<p><a href="#" id="link2">Link2</a></p>
<p><a href="#" id="link3">Link3</a></p>

<script>
function test(i) {
    alert("You just clicked on link:" + i); 
}

onclick = function () { 
    test(i);
};
</script>

4 个答案:

答案 0 :(得分:1)

试试这个

var links = document.getElementsByTagName( "a" );

for ( var i = 0; i < links.length; i++ ) {
    links[i].addEventListener( "click", function( e ) {
        e.preventDefault();
        alert( this.id );
    }, false );
}

DEMO

答案 1 :(得分:1)

我刚刚使用jQuery创建了一个示例。

$(document).ready(function() {
    $("a").click(function() {
       alert(this.id); 
    });
});

http://jsfiddle.net/Yynw9/

要使用jQuery,您必须在头文件中包含该库:

<script src="//code.jquery.com/jquery-1.9.1.js" type="text/javascript" />

答案 2 :(得分:0)

以下是您要查找的JavaScript:

var elements = document.getElementsByTagName("a");
for(var i = 0, length = elements.length; i < length; i++) {
    elements[i].addEventListener( "click", function(e) {
        e.preventDefault();
        alert("You just clicked on link: " + this.id); 
    }, false );
}

JSFiddle:http://jsfiddle.net/3R4FA/1/

代码循环首先选择所有<a>标记的元素。然后循环遍历此数组,并为每个项添加一个click事件侦听器。使用this关键字可以访问触发事件的元素,然后您可以获取id。

答案 3 :(得分:0)

在支持它的浏览器中,你可以使用querySelectorAll来获取所有以'link'开头的id,或者你可以在旧版浏览器中添加一个类并使用getElementsByClassName ..解决方案不是很干净,但是你可以抓住文档中或元素内部的所有'a'标记,并检查'​​id'属性是否以'link'开头...

function test(i) {
    alert("You just clicked on link:" + this.id); 
}
if (document.querySelectorAll('a[id^="link"]')) {
    var elements = document.querySelectorAll('a[id^="link"]');
    var i = 0;
    for (i = 0; i < elements.length; i += 1) {
        elements[i].onclick = test;
    }
} else {
    var elements = document.getElementsByTagName('a');
    var i = 0;
    for (i = 0; i < elements.length; i += 1) {
        if (elements[i].id.substr(0,4) === 'link') {
            elements[i].onclick = test;
        }
    }
}

http://jsfiddle.net/Xvwme/3/