Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript更改href值_Javascript - Fatal编程技术网

从JavaScript更改href值

从JavaScript更改href值,javascript,Javascript,我在JsFiddle中有这个例子 $(文档).ready(函数(){ $(“#更改名称”)。单击(函数(e){ var goLucky=Math.floor(Math.random()*12); if(goLucky%2==0){ this.href=”http://www.google.com"; }否则{ this.href=”http://www.hotmail.com"; } }); }); href更改在第一个链接中有效,但在第二个链接中无效。我怎样才能使它为两个链接工作 我的页

我在JsFiddle中有这个例子


$(文档).ready(函数(){
$(“#更改名称”)。单击(函数(e){
var goLucky=Math.floor(Math.random()*12);
if(goLucky%2==0){
this.href=”http://www.google.com";
}否则{
this.href=”http://www.hotmail.com";
}
});
});
href更改在第一个链接中有效,但在第二个链接中无效。我怎样才能使它为两个链接工作


我的页面中的链接数量是动态的,因为我使用PHP创建链接,所以我需要href更改才能在所有生成的链接中工作。

id
属性必须是唯一的。您应该将值
changeMe
转换为类名,以便在多个元素上使用。那么您现有的代码应该可以工作:

<a href="http://www.yahoo.com" target="_blank" class="changeMe">Yahoo</a>
<a href="http://www.yahoo.com" target="_blank" class="changeMe">Not working</a>

$(document).ready (function () {


    $('.changeMe'). click (function (e) {
        var goLucky = Math.floor(Math.random()*12);
        if (goLucky % 2 == 0) {
            this.href = "http://www.google.com";
        } else {
            this.href = "http://www.hotmail.com";
        }
    });
});

$(文档).ready(函数(){
$('.changeMe')。单击(函数(e){
var goLucky=Math.floor(Math.random()*12);
if(goLucky%2==0){
this.href=”http://www.google.com";
}否则{
this.href=”http://www.hotmail.com";
}
});
});

或者,您可以向第二个锚标记添加唯一的
id
,并相应地修改JavaScript代码。

您不能在HTML中的两个不同元素上使用id。您需要为每个ID或同一个类指定一个不同的ID,然后在每个ID上应用href更改,否则每个网页应使用一次类ID。可以更充分地使用类。记住你的特殊性。使用类而不是id:


$(文档).ready(函数(){
$('.changeMe')。单击(函数(e){
var goLucky=Math.floor(Math.random()*12);
if(goLucky%2==0){
this.href=”http://www.google.com";
}否则{
this.href=”http://www.hotmail.com";
}
});
});

你真的认为伪造这样的链接是个好主意吗?Facebook就是这样做的,为什么他不呢?长话短说,我只是用这种技术在链接末尾添加一个变量:$(“.changeMe”)。单击(函数(e){var x=document.forms[“addcomponent”][“qty”].value;this.href=this.href+x;});
<a href="http://www.yahoo.com" target="_blank" class="changeMe">Yahoo</a>
<a href="http://www.yahoo.com" target="_blank" class="changeMe">Not working</a>

$(document).ready (function () {


    $('.changeMe'). click (function (e) {
        var goLucky = Math.floor(Math.random()*12);
        if (goLucky % 2 == 0) {
            this.href = "http://www.google.com";
        } else {
            this.href = "http://www.hotmail.com";
        }
    });
});
<a href="http://www.yahoo.com" target="_blank" class="changeMe">Yahoo</a>
<a href="http://www.yahoo.com" target="_blank" class="changeMe">Not working</a>

$(document).ready (function () {


    $('.changeMe'). click (function (e) {
        var goLucky = Math.floor(Math.random()*12);
        if (goLucky % 2 == 0) {
            this.href = "http://www.google.com";
        } else {
            this.href = "http://www.hotmail.com";
        }
    });
});