【问题标题】:jQuery append() and data()jQuery 追加()和数据()
【发布时间】:2011-08-06 15:27:14
【问题描述】:

我有未知数量的 ID 增加的 div:

<div id="source-1" data-grab="someURL"/>Content</div>
<div id="source-2" data-grab="anotherURL"/>Content</div>
<div id="source-3" data-grab="anddifferentURL"/>Content</div>
<div id="source-4" data-grab="andthelastoneURL"/>Content</div>

我还有另一个清单:

<ul>
   <li id="target-1" class="target"><a href="#"> </a></li>
   <li id="target-2" class="target"><a href="#"> </a></li>
   <li id="target-3" class="target"><a href="#"> </a></li>
   <li id="target-4" class="target"><a href="#"> </a></li>
</ul>

现在,我想要实现的是从 source-1 抓取数据抓取 URL,并将其作为图像附加到 target-1 等等。所以最后输出列表看起来就像:

<ul>
       <li id="target-1"><a href="#"><img src="someURL" /> </a></li>
       <li id="target-2"><a href="#"><img src="anotherURL" /> </a></li>
       <li id="target-3"><a href="#"><img src="anddifferentURL" /> </a></li>
       <li id="target-4"><a href="#"><img src="andthelastoneURL" /> </a></li>
</ul>

我正在从第一个列表中获取所有数据,但我不确定如何将正确的源元素附加到正确的目标元素?

 $(document).ready(function(){
                $('.target').each(function(){
                var URL = jQuery(this).data('grab');
                });
            });

【问题讨论】:

    标签: javascript jquery append


    【解决方案1】:

    如果您向源元素添加类(如.source),则可以使用索引来选择正确的元素:

     $(document).ready(function(){
                    var targets = $( '.target' );
                    $('.source').each(function(index, value){
                        $(target[index]).children("a").first().append($("<img src=" + value.data('grab') + " />"));
                    });
                });
    

    【讨论】:

      【解决方案2】:
      $(document).ready(function(){
        $('.target').each(function(){
           var $this = $(this);
           var divID = "source-" + ($this.id()).split("-")[1];
           $("a", $this).append('<img src="' + $(divID).data("grab") + '" />');
        });
      });
      

      【讨论】:

      • 为什么有 var $this 而不是 "var this"? :) 我正在编写我的脚本并会说它是否有效,但我相信它会的!
      • @Wordpressor using var $this = $(this) 减少了 jquery 选择器调用并使代码比在任何地方不断使用 $(this) 更高效。
      • divID 不等于“source1”而不是“source-1”吗?
      猜你喜欢
      • 2017-11-07
      • 1970-01-01
      • 2013-04-25
      • 2012-02-07
      • 2013-04-26
      • 2018-01-06
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多