Как найти ссылки с определенным расширением, используя jQuery - PullRequest
1 голос
/ 02 ноября 2010

Я пытаюсь пройти и найти ссылки с определенным расширением (* .ashx), чтобы я мог открыть ссылку в новой вкладке.(Sitefinity не разрешает target = "_ blank").

Я могу найти теги, используя jQuery, но мне нужно отфильтровать его так, чтобы при нажатии на тег с расширением .ashx ямогу открыть это в новом окне.

Как-то так

<a href="anniversary.sflb.ashx"> Anniversary </a> 

Большое спасибо, Джеймс

Ответы [ 3 ]

5 голосов
/ 02 ноября 2010

Было бы лучше использовать атрибут содержит селектор

$("a[href*='.ashx']").each(
  function() {
  //Do stuff
});

см. http://jsfiddle.net/graham/Fa6kV/

2 голосов
/ 02 ноября 2010

Два ответа, представленные до сих пор (ответы Грэма и Стива), являются потенциально неточными: иногда ответы Грэма будут соответствовать ссылкам, которые имеют ashx где-то в строке, но не обязательно в конце строки - bashxml.php будет соответствовать, например.Между тем у Стива не будет совпадения, если есть строка запроса, как он отмечает.

Вы можете обойти это, выполнив фильтрацию самостоятельно:

$('a').each(function() {
    if (this.pathname.substr(-5) === '.ashx') { // if the last 5 characters of the pathname are .ashx
        // do your processing here
    }
});

См. Документацию наМестоположение объекта .

0 голосов
/ 02 ноября 2010

Вы можете использовать атрибут , оканчивающийся селектором :

$("a[href$='.ashx']")

Примечание: это не будет работать, если ваши ссылки имеют строку запроса или какой-либо другой суффикс в атрибуте href

...