Использование Jquery и регулярных выражений для изменения части HREF - PullRequest
2 голосов
/ 25 августа 2009

В настоящее время я пытаюсь использовать Jquery для изменения атрибута href ссылки в DIV, чтобы URL-адрес изменялся с file.html на file.jpg ...

<div class="gallery">
<a href="file.html">My File</a>

и я хочу изменить его на

<div class="gallery">
<a href="file.jpg">My File</a>

Я видел пост об изменении атрибута href с помощью Jquery и понимаю некоторые из них, но я совершенно не уверен, как изменить все ссылки, заканчивающиеся .html в div, на .jpg. Имя файла не нужно менять. Кто-нибудь сможет указать мне правильное направление для помощи?

Ответы [ 4 ]

4 голосов
/ 25 августа 2009

Попробуйте один из них:

$("div.gallery a").each(function() {
    this.setAttribute("href", this.getAttribute("href").replace(/\.html$/, ".jpg"));
});

$("div.gallery a[href$=.html]").each(function() {
    var href = this.getAttribute("href");
    this.setAttribute("href", href.substr(0, href.length-6) + ".jpg"));
});

Первый выберет каждый a внутри вашего div и попытается заменить .html в конце на .jpg с помощью регулярного выражения. Второе выберет только те, чье значение href оканчивается на .html и заменит его на .jpg, используя простые строковые операции.

1 голос
/ 25 августа 2009
var href=$(".gallery a").attr("href");
href=href.replace(/\.html$/,".jpg");
$(".gallery a").attr("href",href);
1 голос
/ 25 августа 2009

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

$('a[href$=.html]').each( function() {
    var $this = $(this);
    var href = $this.attr('href').replace(/\.html/,'.jpg');
    $this.attr('href', href );
});
0 голосов
/ 25 августа 2009

Я не проверял это, но я думаю, что это должно сделать:

$('a', '.gallery').each(function(){
   $(this).attr('href', $(this).attr('href').replace(/\.html$/, '.jpg'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...