Javascript 使用多个变量更改href onclick
我对js知之甚少,所以请温柔一点 我正在使用下面的代码,它最初用于交换类。我原以为把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
.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
sid
url
?你能在问题中加入html
吗?预期结果是什么?@gavgrif您的意思是将#url更改为.url吗?使用-$(this).attr()方法更改hrefIt在执行一次后将停止,因为id必须是唯一的。您需要使用类或其他选择器将代码应用于每个链接。如果你的链接都是相同的id,那么也需要更改。史蒂夫·乔布斯!很高兴你回来了!因此,基本上您正在尝试将元素的类从className
更改为href
?“我的问题是它只工作一次,然后就停止了。”您是什么意思?为什么对具有#id
的元素调用.each()
?结果只能出现一次,除非文档中有重复的id
sid
url
?你能在问题中加入html
吗?预期结果是什么?@gavgrif您的意思是将#url更改为.url吗?