【问题标题】:replaceWith Jquery Not working if more than 2 images如果超过 2 个图像,replaceWith Jquery 不起作用
【发布时间】:2016-11-14 03:27:21
【问题描述】:

我在这里有一个导航,里面的 li 是一个锚标记和由文本组成的跨度。我想要实现的是使用 jquery replaceWith 替换导航中的所有跨度但是,我似乎无法使其工作。这是我制作的代码。知道我的错误是什么吗?

<script>
$( document ).ready(function() {
    //store img in an array.
    var imgArray= [ "<img class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_1-123x123.png\"/>",
    "<img  class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_4-123x123.png\"/>","<img  class=\"imgNav\" src=\"https://irp-cdn.multiscreensite.com/abc3fe9a/dms3rep/multi/services_icon_66-123x123.png\"/>" ];



        $('.dmUDNavigationItem_010101661768 > span.navItemText').replaceWith(imgArray[0]);
        $('.dmUDNavigationItem_010101628177 > span.navItemText').replaceWith(imgArray[1]);
        /* if I put this third one in the script it doesn't work.
        $('.dmUDNavigationItem_010101420041 > span.navItemText').replaceWith(imgArray[2]);
        */



});
</script>

这是我在 jsbin 中的 HTML 链接。 http://jsbin.com/magofarivi/edit?html,output

【问题讨论】:

  • 应该可以。这是使用您的 JS 的简化示例:Codepen。我的猜测是你的类名在第三个中不正确,但我们无法判断,因为没有提供 html。另外,它需要循环吗?现在,它将为每个选择器分别运行这些replaceWith() 调用三次。
  • 我在第一次试验中使用 forloop 来控制台记录 img 数组。
  • 请只提供相关代码。如果您不再使用它,则不应将其包含在问题中。此外,您的代码仍然可以与 JS Bin 中的 html 一起按预期工作。它一定是别的东西。 Codepen

标签: jquery replacewith


【解决方案1】:

为什么?因为一旦您在循环的第一次迭代中替换了这些元素......它们就不再存在以在进一步的迭代中被替换

如果没有提供示例 html,您尝试做的事情的总体范围是不清楚的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-17
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多