jQuery каждая функция IE7 - PullRequest
       0

jQuery каждая функция IE7

1 голос
/ 03 октября 2011

У меня есть несколько ссылок на странице, которые я хотел бы изменить с

<span id="lireArticle">
<a href="/Lists/ListeActualitesCarrousel/4_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

<span id="lireArticle">
<a href="/Lists/ListeActualitesCarrousel/2_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

<span id="lireArticle">
<a href="/Lists/ListeActualitesCarrousel/3_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

на

  <span id="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/DispForm.aspx?ID=4" class="action">Lire l'article</a>
    </span>

    <span id="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/DispForm.aspx?ID=4" class="action">Lire l'article</a>
    </span>

    <span id="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/DispForm.aspx?ID=4" class="action">Lire l'article</a>
    </span>

Это работает в Firefox, IE9, IE8, но не IE7 !

он просто меняет первую ссылку в IE7

jQuery("#lireArticle a").each(function(){
        jQuery(this).attr('href',jQuery(this).attr('href').replace(/\/(\d)_.(\d{3})\//,'/'));
})

Как мне заставить его работать в IE7?

Ответы [ 3 ]

2 голосов
/ 03 октября 2011

Вы не можете иметь несколько элементов с одинаковым идентификатором.

Вместо этого используйте class="".

0 голосов
/ 03 октября 2011

Упс сделал ошибку синтаксиса в предыдущем посте, обновлено. Если вы не хотите изменять ссылки, добавляя класс, просто используйте другой селектор.

$('a[href^="/Lists/ListeActualitesCarrousel"]').each(function(){
     var newURL = $(this).attr('href').replace(/\/(\d)_.(\d{3})\//,'/');
     $(this).href(newURL);
});
0 голосов
/ 03 октября 2011

Проблема в том, что вы используете один и тот же идентификатор несколько раз на странице. Идентификатор элемента должен быть уникальным. Ваш код находит первый экземпляр элемента с идентификатором "lireArticle" и изменяет все его a. Я предлагаю использовать class="" вместо.

Markup:

<span class="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/4_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

<span class="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/2_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

<span class="lireArticle">
    <a href="/Lists/ListeActualitesCarrousel/3_.000/DispForm.aspx?ID=4" class="action">Lire l'article</a>
</span>

JavaScript:

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