【问题标题】:reload/replace image jquery as a list item in <ul>将图像 jquery 重新加载/替换为 <ul> 中的列表项
【发布时间】:2012-05-29 21:53:16
【问题描述】:

大家好,我在无序列表 html 中将图像作为列表项附加到里面 并使用 jquery 使用以下代码在无序列表中动态插入项目

 for(var i=1; i<=5; i++){       
   $('ul').append('<li class="stage1">'+ stage1img[i]+'</li>')
 }

图片将在页面加载时加载 现在点击按钮我想替换所有图像。即所有列表项(li)与其他项目如下 我试过了

for(var j=6; j<=10;j++){
      $('li.stage1').replaceWith('<li>'+ stage1img[j]+ '</li>');
     }

【问题讨论】:

  • 我认为您在第二个示例中有错字... ´ stage1img[j]+'>´
  • 您在用函数替换时出现语法错误。在 li replaceWith('
  • '+ stage1img[j]+'
  • ');
  • 如果你有替换 li 的内容,那么在 replacewith 函数中不需要 li 标记。你可以直接在函数中写你的替换文本。请参阅我下面的答案中的示例
  • 标签: javascript jquery image replace


    【解决方案1】:

    我不是很精通Javascript,但是如果你想ol,为什么不先删除旧的ol,然后添加新的ol。删除 ol 使用类似的东西:

    <script type="text/javascript"><!--
    $(document).ready(function() {
      // when the tag with id="btn" is clicked
      $('#btn').click(function() {
        // removes all LI with class="cls" in OL
        $('ol li.cls').remove();
      });
    });
    --></script>
    

    然后像以前一样添加新项目。

    【讨论】:

      【解决方案2】:

      我已经修改了你的代码,请尝试一下。

      for(var j=6; j<=10;j++){
            $('li.stage1').replaceWith(stage1img[j]);
           }
      

      【讨论】:

        【解决方案3】:

        如果你想删除所有的

      • items ..y 你不改变容器的 HTML 吗?
        var strHTML='';
        for(var j=6; j<=10;j++){
             strHTML +='<li>'+ stage1img[j]+ </li>';
             }
        
        //then consider <div> is the container of all this <li> simply do:
        $('div').html(strHTML);
        
      • 【讨论】:

        • 请更正您的语法错误 strHTML +='
        • '+ stage1img[j]+ '
        • ';
      • @lenda:您必须为所有列表项提供一些其他容器。你可以使用它
      • @Harry: 这是技术论坛.. 这种语法不能成为评论的理由
      • 如果用户直接复制/粘贴您的代码并使用它,那么他会得到错误,这就是我指向您的原因。
      • 这样的错误是可以纠正的。它们不是复杂的类型。现在让我们停止在愚蠢的事情上争论吧。
      • 【解决方案4】:

        我认为您的错误在于您的 jQuery 选择。尝试添加.eq()

        for(var j=6; j<=10;j++){
          $('li.stage1').eq(j-6).replaceWith('<li>'+ stage1img[j]+'stage1 </li>');
         }
        

        【讨论】:

        • -6 因为你的 for 循环从 6 开始。.eq() 在这种情况下需要从 0 开始。
        • 这张图片被用于画廊,该图片在页面加载时由默认图片加载,如我问题中的上述代码,我将在按钮点击时替换它
        • 我不明白为什么这不能解决问题。通过像这样通过 src attr 识别图像来替换图像是否有帮助:$('li.stage1:has(img[src="'+$(stage1img[j-5]).attr('src')+'"])').replaceWith('&lt;li&gt;'+ stage1img[j]+ '&lt;/li&gt;');
        • @sofl thnx 但即使这样也没有加载图像
        猜你喜欢
        相关资源
        最近更新 更多
        热门标签