2011-06-13 94 views
5

我目前有这一点jQuery我正在使用附加URL的一些位置信息。检查href是否存在jQuery中的查询字符串

jQuery('a').attr('href', function() { 
      return this.href + "&location=/123/abc"; 
     }); 

我的问题是大多数链接有一个?其中使上述&好用。有一些不选择的选择。我正在查看网址,看看有没有?如果有我想使用“& location =/123/abc”,如果没有?我将需要使用“?location =/123/abc”

我不是if/else语句中最好的。任何帮助,将不胜感激。

if (thereIsA?InTheUrl) { 

    return this.href + "&location=/123/abc"; 

} else { 

    return this.href + "?location=/123/abc"; 

} 

类似的东西,只是不确定哦写它。

回答

6
jQuery('a').attr('href', function() { 
     return (this.href.indexOf("?") >= 0) ? this.href + "&location=/123/abc" : this.href + "?location=/123/abc"; 
    }); 
+0

这工作完美! – Michael 2011-06-13 23:03:33

1

Michael。

使用JavaScript的indexOf()函数。

像这样:

if(this.href.indexOf('?')>=0){//PLACE MAGIC HERE} 

工作原理是这样的:

返回匹配字符串的位置,如果它发现它。
如果找不到则返回-1,因此为>=0。位置0是字符串的第一个字符。

详情点击这里:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf

+1

这工作。与上面所接受的答案相同,只是较少的细节。我选择了上面的答案,以便其他人学习可以理解这个过程。谢谢。 – Michael 2011-06-13 23:11:18

0
if (this.href.indexOf("?") >= 0) 
+0

这工作。与上面所接受的答案相同,只是较少的细节。我选择了上面的答案,以便其他人学习可以理解这个过程。谢谢。 – Michael 2011-06-13 23:11:35

1
var str = window.location.href; 
if (str.indexOf('?' >= 0) { 
    return str + "&location=/123/abc"; //there's a ? 
} else { 
    return str + "?location=/123/abc"; //no ? 
} 
相关问题