Javascript 提醒用户单击的链接的ID

Javascript 提醒用户单击的链接的ID,javascript,onclick,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="

我有几个链接,每个都有唯一的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>

功能测试(一){ 警报(“您刚刚点击了链接:+i); } onclick=function(){ 试验(i); };
试试这个

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 );
}
var links=document.getElementsByTagName(“a”);
对于(变量i=0;i

我刚刚为您创建了一个使用jQuery的示例

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

要使用jQuery,必须在标题中包含库:

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

以下是您正在寻找的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 );
}
var elements=document.getElementsByTagName(“a”);
for(var i=0,length=elements.length;i
JSFiddle:


代码循环首先选择属于
标记的所有元素。然后,它循环遍历该数组,并向每个项目添加一个单击事件侦听器。使用
this
关键字访问触发事件的元素,然后您可以获取id。

在支持它的浏览器中,您可以使用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;
        }
    }
}
功能测试(一){
警报(“您刚刚点击了链接:+this.id”);
}
if(document.querySelectorAll('a[id^=“link”]”){
var elements=document.querySelectorAll('a[id^=“link”]”);
var i=0;
对于(i=0;i

无jQuery-阅读我想用纯JavaScript实现的要求。jQuery是纯JavaScript;)这个问题没有指定jquery,这通常意味着我们不应该使用jquery解决方案来回答问题。然而,在这种情况下,问题中显示的理解水平表明jquery可能是最合适的答案。但同样,考虑到我们在问题中看到的情况,我建议编辑答案,包括关于如何使用jquery以及如何将其添加到站点的注释,而不仅仅是提供jquery代码,因为如果他在不知道的情况下尝试测试,它将不起作用。确定jquery是JS,但是页面和1个http请求的额外重量是90K。。对于这个例子来说,它只是一个过火的例子,添加了添加jquery的提示。是的,但这个例子肯定只是他的代码/项目的一个摘录。你得到的代码离使用javascript还有很长的路要走
onclick
不是一个函数,它的工作方式与您编写它的方式完全不同。这里的一些答案会有帮助,但我建议找一些好的教程来学习,因为尽管复制并粘贴下面的答案可能会让代码正常工作,但这无助于您理解它的实际工作原理。您希望页面上的每个链接都发出警报,即使它没有id,还是只包含id的链接,或者只包含ID以“link”开头的链接,或者只包含某种标记内部的链接(例如包含类“alertlinks”的链接或包含类“p”的链接)标记?该代码将对页面的其他部分产生负面影响。例如,不会发出任何警报,也不会到达其目的地。我从另一篇文章中复制了这篇文章,并给出了相同的答案:“该代码将对页面的其他部分产生负面影响。例如,不会发出警报,也不会到达其目的地。”是的,这是显而易见的,但是海报要求对每个链接都这样做如果您不想停止默认行为,或者您可以提供另一个要附加到的标识符。事实上,没有其他标识符可以附加事件。所有这些标识符都有一个以“key”开头的id,问题在所有id中都有“link”。您想对一个根本没有id的链接发出警报吗?我回答了这个问题n如前所述,如果海报有更多的要求,他可以更新问题,然后我可以更新我的答案。在那之前,辩论是没有意义的!我不能回答你的问题,你也不能,只有海报可以。