2010-12-10 3 views
0

(очень новый JavaScript JQuery)если оператор синтаксис Javascript JQuery .each функция

Может, если заявление содержит коллекцию других функций, в частности .each функции? Если да, что-то не так с моей реализацией?

var string2 = "domain"; 
var mainpath = (window.location.href); 

if (mainpath.indexOf(string2)) { 

    $("#topnav a").each(function(){       
     var thishref = $(this).attr('href');  
     $(this).attr({href: thishref + '?lnkid=tnav'}); 
    }); 

    $("#nav a").each(function(){        
     var thishref = $(this).attr('href');  
     $(this).attr({href: thishref + '?lnkid=pnav'}); 
    }); 

} 

То, что я хочу сделать, это запустить код внутри, если заявление только тогда, когда страница находится на моем домене (а не внутри пространства развития в ОМ). -Скорость

+0

не связаны напрямую на ваш вопрос, но вы можете сравнить непосредственно `window.location.host` – Gareth 2010-12-10 15:07:14

+0

Условный оператор может содержать любое другое заявление, например, оператор блока, который, в свою очередь, содержит список из 0 или более операторов. – 2010-12-10 15:20:00

ответ

0

, что он может. Вы делаете это в основном правильно. Предложение:

Четко с вашим, если условно, так что-то вроде

if (mainPath.indexOf(string2) !== -1) {... 

} 
0

Да, ничего страшного в этом нет. но она может быть легко обмануть с помощью следующего URL:

http://www.other.tld/?domain

0

Совершенно уважительной использовать if условно выполнения кода. Хотя, как представляется, проблема с условием:

if (mainpath.indexOf(string2)) 

Индекс строке2 в MainPath может быть 0, препятствующей код от исполнения, и это, конечно, не то, что вы хотите.

Скорее тест, как это:

if (mainpath.indexOf > -1) ... 
+0

В этом случае (из-за гарантированного вывода window.location.href) это произошло бы только в том случае, если домен был «http», поэтому, хотя это стоит упомянуть, это не проблема здесь конкретно – Gareth 2010-12-10 15:15:25

0

Как предложение, вы можете добавить запрос к каждой ссылке, как это:

$("#topnav a").each(function(){       
    this.search = 'lnkid=tnav';  
}); 

Там нет необходимости для окольного пути с участием получения HREF атрибут, добавить к нему и вернуть его обратно.

Демо: http://jsfiddle.net/3ZpMz/1/

Смежные вопросы