0

我想使用 javascript 使我的所有链接都向其 href 属性发出发布请求。

为此,我编写了这段代码:

var links = document.getElementsByTagName("a");
var messaggio = "ciao";                                                  
var url="";     

for(l=0; l<links.length;++l) {
    url = links[l].href;
    links[l].onclick = post(url,messaggio);
    links[l].removeAttribute("href");
}           

现在的 post 功能很简单

function post(url, messaggio) {                                                 
     alert(messaggio + url);
}

如果我使用这段代码,我会在加载页面时收到很多警报,每个警报都包含它的 url。如果我改为将代码更改为

links[l].onclick = function () { post(url,messaggio); }; 

加载页面时没有弹出任何内容(应该是)并单击链接会显示警报(应该是)但包含页面中最后一个链接的 url

我猜这是因为它每次都在同一个指针上创建相同的函数?但我不知道如何改变谢谢

4

1 回答 1

0

您的范围有问题。尝试这个。有更好的方法但是:

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

for(l=0; l<links.length;++l) {                                        

    links[l].url = links[l].href; 
    links[l].messaggio = messaggio

    links[l].onclick =function (){
        post(this.url,this.messaggio)
    };                                                                        
    links[l].removeAttribute("href");                                    
}  
于 2013-11-14T00:00:44.613 回答