Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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 onclick_Javascript_Jquery - Fatal编程技术网

Javascript 使用多个变量更改href onclick

Javascript 使用多个变量更改href onclick,javascript,jquery,Javascript,Jquery,我对js知之甚少,所以请温柔一点 我正在使用下面的代码,它最初用于交换类。我原以为把.className改成.href就这么简单,但我错了 我的问题是,它工作一次,然后停止 $(document).ready(function(){ $('#click').click(function () { $('#url').each(function(){ var classes = ['/1','/2','/3','/4']; this.href = classes

我对js知之甚少,所以请温柔一点

我正在使用下面的代码,它最初用于交换类。我原以为把
.className
改成
.href
就这么简单,但我错了

我的问题是,它工作一次,然后停止

$(document).ready(function(){
  $('#click').click(function () {
    $('#url').each(function(){
      var classes = ['/1','/2','/3','/4'];
      this.href = classes[($.inArray(this.href, classes)+1)%classes.length];
    });
  });
});
编辑: 以下是我正在使用的html:

<a id="url" href="/0">hello</a>

我的目标是在每次单击时用/1然后用/2切换/0。

您可以使用
.attr()
,将变量设置为
-1
。在
中,单击事件处理程序增量变量,直到变量达到
类.长度
,然后将变量重置为
0
,而不使用运算符

$(文档).ready(函数(){
变量类=['/1','/2','/3','/4'];
var i=-1;
var url=$(“#url”);
$('#单击')。单击(函数(){
i=(++i

点击
您可以使用
.attr()
,将变量设置为
-1
。在
中,单击事件处理程序增量变量,直到变量达到
类.长度
,然后将变量重置为
0
,而不使用运算符

$(文档).ready(函数(){
变量类=['/1','/2','/3','/4'];
var i=-1;
var url=$(“#url”);
$('#单击')。单击(函数(){
i=(++i

点击

此操作失败,因为协议
文件://
http://
以静默方式添加了
href

因此,改变这一点:

$.inArray(this.href, classes)
致:


。。。这将在数组中查找之前从字符串中删除协议。

这将失败,因为协议
文件://
http://
会以静默方式添加
href

因此,改变这一点:

$.inArray(this.href, classes)
致:


。。。它在数组中查找之前从字符串中删除协议。

使用-$(this).attr()方法更改hrefIt在执行一次后将停止,因为id必须是唯一的。您需要使用类或其他选择器将代码应用于每个链接。如果你的链接都是相同的id,那么也需要更改。史蒂夫·乔布斯!很高兴你回来了!因此,基本上您正在尝试将元素的类从
className
更改为
href
?“我的问题是它只工作一次,然后就停止了。”您是什么意思?为什么对具有
#id
的元素调用
.each()
?结果只能出现一次,除非
文档中有重复的
id
s
id
url
?你能在问题中加入
html
吗?预期结果是什么?@gavgrif您的意思是将#url更改为.url吗?使用-$(this).attr()方法更改hrefIt在执行一次后将停止,因为id必须是唯一的。您需要使用类或其他选择器将代码应用于每个链接。如果你的链接都是相同的id,那么也需要更改。史蒂夫·乔布斯!很高兴你回来了!因此,基本上您正在尝试将元素的类从
className
更改为
href
?“我的问题是它只工作一次,然后就停止了。”您是什么意思?为什么对具有
#id
的元素调用
.each()
?结果只能出现一次,除非
文档中有重复的
id
s
id
url
?你能在问题中加入
html
吗?预期结果是什么?@gavgrif您的意思是将#url更改为.url吗?