最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery append() and data() - Stack Overflow

programmeradmin4浏览0评论

I have unknown number of divs with increasing ID's:

<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>

And I have another list:

<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>

Now, what I want to achive is grabbing data-grab URL from source-1 and append it to target-1 as a image and so forth. So finally the output list will look just like:

<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>

I'm grabbing all the data from the first list, but I'm not sure how to append right source element to right target element?

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

I have unknown number of divs with increasing ID's:

<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>

And I have another list:

<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>

Now, what I want to achive is grabbing data-grab URL from source-1 and append it to target-1 as a image and so forth. So finally the output list will look just like:

<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>

I'm grabbing all the data from the first list, but I'm not sure how to append right source element to right target element?

 $(document).ready(function(){
                $('.target').each(function(){
                var URL = jQuery(this).data('grab');
                });
            });
Share Improve this question edited Dec 20, 2015 at 19:58 Brian Tompsett - 汤莱恩 5,89372 gold badges61 silver badges133 bronze badges asked Apr 15, 2011 at 21:03 WordpressorWordpressor 7,55326 gold badges75 silver badges115 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 4
$(document).ready(function(){
  $('.target').each(function(){
     var $this = $(this);
     var divID = "source-" + ($this.id()).split("-")[1];
     $("a", $this).append('<img src="' + $(divID).data("grab") + '" />');
  });
});

You can use indices to select the right elements, if you add a class to your source elements (like .source):

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

评论列表(0)

  1. 暂无评论