Проверка href на наличие строки запроса в jQuery - PullRequest
5 голосов
/ 14 июня 2011

В настоящее время у меня есть этот бит jQuery, который я использую, чтобы добавить URL с некоторой информацией о местоположении.

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

Моя проблема в большинстве ссылок есть? в котором делает для использования выше и хорошо. Есть несколько избранных, которые этого не делают. Я ищу, чтобы проверить URL, чтобы увидеть, если есть? Если есть, я хочу использовать «& location = / 123 / abc», если нет? Мне нужно будет использовать "? Location = / 123 / abc"

Я не лучший с заявлениями if / else. Любая помощь будет оценена.

if (thereIsA?InTheUrl) {

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

} else {

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

}

Что-то в этом роде, просто не уверен, что напишу.

Ответы [ 4 ]

7 голосов
/ 14 июня 2011
   jQuery('a').attr('href', function() {
        return (this.href.indexOf("?") >= 0) ? this.href + "&location=/123/abc" : this.href + "?location=/123/abc";
   });
1 голос
/ 14 июня 2011
var str = window.location.href;
if (str.indexOf('?' >= 0) {
  return str + "&location=/123/abc"; //there's a ?
} else {
  return str + "?location=/123/abc"; //no ?
}
1 голос
/ 14 июня 2011

Майкл.

Используйте функцию JavaScript indexOf ().

Как это:

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

Как это работает?

Возвращает позицию совпадающей строки, если она ее находит.
Возвращает -1, если не находит, следовательно, >=0. Позиция 0 является первым символом строки.

Подробности здесь:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/indexOf

0 голосов
/ 14 июня 2011
if (this.href.indexOf("?") >= 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...