Jquery 添加到href
我想在链接变为“活动”时添加到href。我的代码选择一个特定的类,添加一个类,然后,如果它是一个特定的文件,则需要将此额外的输入(“lightbox[width]=350&lightbox[height]=170”)添加到href中。我的代码如下:Jquery 添加到href,jquery,Jquery,我想在链接变为“活动”时添加到href。我的代码选择一个特定的类,添加一个类,然后,如果它是一个特定的文件,则需要将此额外的输入(“lightbox[width]=350&lightbox[height]=170”)添加到href中。我的代码如下: $('.active').removeClass("lightbox").addClass("lightbox"); $('.active [href$='.swf'],[href$='.mov'],[href$='.flv'],[href$=
$('.active').removeClass("lightbox").addClass("lightbox");
$('.active [href$='.swf'],[href$='.mov'],[href$='.flv'],[href$='.wmv']').attr("href", function(i, href)
{return href + '?lightbox[width]=350&lightbox[height]=170';
不想添加到href。任何帮助都将不胜感激 试试这个:
$(".active")
.filter("[href$='.swf'],[href$='.mov'],[href$='.flv'],[href$='.wmv']")
.attr("href", function(i, href) {
return href + '?lightbox[width]=350&lightbox[height]=170';
});
我将外部引号更改为双引号,因为您已经在选择器中使用了单引号。如果要在字符串中包含引号,则必须确保引号的类型与封装字符串的引号的类型不同:
"This 'string' is OK"
'This "one" also'
我还将代码更改为首先选择所有“.active”元素,然后过滤掉href属性中不以所需字符串(.swf、.mov、.flv或.wmv)结尾的元素。代码的工作方式是“.active”选择器仅应用于第一个[href]选择器
另一件事…
由于点字符是选择器中的元字符,因此可以尝试转义它
与此相反:
.filter("[href$='.swf'],[href$='.mov'],[href$='.flv'],[href$='.wmv']")
试试这个:
.filter("[href$='\\.swf'],[href$='\\.mov'],[href$='\\.flv'],[href$='\\.wmv']")
更新强>
我做了一些测试,\
转义不起作用,但是\
转义起作用。另外,在我的浏览器-Win7上的Chrome-中,它甚至可以在不转义的情况下工作。尝试以下方法:
$(".active")
.filter("[href$='.swf'],[href$='.mov'],[href$='.flv'],[href$='.wmv']")
.attr("href", function(i, href) {
return href + '?lightbox[width]=350&lightbox[height]=170';
});
我将外部引号更改为双引号,因为您已经在选择器中使用了单引号。如果要在字符串中包含引号,则必须确保引号的类型与封装字符串的引号的类型不同:
"This 'string' is OK"
'This "one" also'
我还将代码更改为首先选择所有“.active”元素,然后过滤掉href属性中不以所需字符串(.swf、.mov、.flv或.wmv)结尾的元素。代码的工作方式是“.active”选择器仅应用于第一个[href]选择器
另一件事…
由于点字符是选择器中的元字符,因此可以尝试转义它
与此相反:
.filter("[href$='.swf'],[href$='.mov'],[href$='.flv'],[href$='.wmv']")
试试这个:
.filter("[href$='\\.swf'],[href$='\\.mov'],[href$='\\.flv'],[href$='\\.wmv']")
更新强>
我做了一些测试,
\
转义不起作用,但是\
转义起作用。另外,在我的浏览器中,在Win7上的Chrome浏览器中,它甚至可以正常工作。我被第一行迷住了:为什么你要选择一个元素,然后删除,然后替换类“lightbox”
?@David,真是个好主意。那太好笑了。也许第一堂课的灯箱被恶魔缠住了?谢谢。我使用.removeClass(“lightbox”).addClass(“lightbox”)的原因;另一个javascript(图像库)正在处理代码,我试图确保lightbox类在用户再次单击同一图像时再次应用它之前确实已被删除。我以前在这个网站上看到过这个代码,所以我当然也用它来对付邪恶的灵魂。我被第一句话迷住了:为什么你要选择一个元素,然后删除,然后替换类“lightbox”
?@David,哈哈哈,这是个好消息。那太好笑了。也许第一堂课的灯箱被恶魔缠住了?谢谢。我使用.removeClass(“lightbox”).addClass(“lightbox”)的原因;另一个javascript(图像库)正在处理代码,我试图确保lightbox类在用户再次单击同一图像时再次应用它之前确实已被删除。我以前在这个网站上看过这段代码,所以我当然也用它来对付邪恶的灵魂。考虑到这个问题的性质,我假设@Mike对jQuery/JavaScript是相当陌生的,所以你可能想解释一下为什么会这样做,他的方法没有。@David Good idea:)我通常只在OP没有得到它的时候才进一步解释。谢谢你的解释和答案。代码不起作用,但我会继续尝试!一步一步地学习Jquery…@Mike我更新了我的答案。尝试用\\@David转义点字符,但也会选择具有href属性的元素,如“www.foo.com/movies/wmv”(在本例中,“wmv”是一个目录,我们只想选择指向“.wmv”文件的href,而不选择任何以“wmv”结尾的href)。鉴于问题的性质,我假设@Mike对jQuery/JavaScript相当陌生,所以你可能想解释一下为什么这是有效的,而他的方法没有。@David Good idea:)我通常只在OP没有理解的情况下才进一步解释。谢谢你的解释和答案。代码不起作用,但我会继续尝试!一步一步地学习Jquery…@Mike我更新了我的答案。尝试用\\@David转义点字符,但这也会选择具有href属性的元素,如“www.foo.com/movies/wmv”(在本例中,“wmv”是一个目录,我们只希望选择指向“.wmv”文件的href,而不选择任何以“wmv”结尾的href)。