Jquery 添加到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$=

我想在链接变为“活动”时添加到href。我的代码选择一个特定的类,添加一个类,然后,如果它是一个特定的文件,则需要将此额外的输入(“lightbox[width]=350&lightbox[height]=170”)添加到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)。