【问题标题】:jQuery each function IE7jQuery各功能IE7
【发布时间】:2011-11-29 22:16:13
【问题描述】:

我想要更改的页面中有一些链接

<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 中工作?

【问题讨论】:

  • 请描述它应该做什么,以及实际发生了什么。
  • 我在问题中添加了更多细节
  • 在 IE7 中它只改变第一个链接

标签: jquery internet-explorer


【解决方案1】:

您不能有多个具有相同 ID 的元素。

请改用class=""

【讨论】:

    【解决方案2】:

    问题是您在页面上多次使用同一个 ID。元素的 ID 应该是唯一的。您的代码正在查找 ID 为“lireArticle”的元素的第一个实例并更改其所有 a。我建议改用class=""

    标记:

    <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})\//,'/'));
    })
    

    【讨论】:

      【解决方案3】:

      糟糕,在上一篇文章中出现语法错误,已更新。如果您不想通过添加类来更改链接,只需使用不同的选择器即可。

      $('a[href^="/Lists/ListeActualitesCarrousel"]').each(function(){
           var newURL = $(this).attr('href').replace(/\/(\d)_.(\d{3})\//,'/');
           $(this).href(newURL);
      });
      

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 1970-01-01
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多