使用类似的rel值附加内容

时间:2011-11-08 07:48:07

标签: jquery

我想我坚持这个。我想基于rel相似性将源的内容附加到其目标容器中。

<div class="targets">
<div class="target target-1" rel="1">container 1</div>
<div class="target target-2" rel="2">container 2</div>
<div class="target target-3" rel="3">container 3</div>
</div>

<div class="sources">
<div class="source source-1" rel="1">source 1 content to append to container 1</div>
<div class="source source-2" rel="2">source 2 content to append to container 2</div>
<div class="source source-3" rel="3">source 3 content to append to container 3</div>
</div>

因此要附加到容器1的来源1内容应附加到容器1

我试过了:

var rel_attr = $(this).attr('rel');
$('.source-' + rel_attr).appendTo('.target-' + rel_attr);

但无济于事。我一定错过了什么。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

它不起作用,因为$(this)没有指向某个地方。试试这个

jQuery('.sources .source').each( function () {

    var content = jQuery(this).html(); //or .text();
    var rel = jQuery(this).attr('rel');

    jQuery('.targets .target-'+rel).html(content); // or .text() again;
    jQuery(this).hide();
    //use jQuery(this).html(''); if you do not want to hide the div

} );

http://jsfiddle.net/9YkSs/

答案 1 :(得分:0)

这对你有用:

$("div[class^='source-']").each(function() {
    var tmpRel = $(this).attr("rel");
    var divClass= "target-"+tmpRel;
    $("div[class='"+divClass+"']").append($(this).html());
});

答案 2 :(得分:0)

$('.source').each(function()
{
  $(this).appendTo($('.targets').find('div.target[rel='+$(this).attr('rel')+']'));
})

答案 3 :(得分:0)

如果你真的想从'sources'包装器中删除'source'DIV并放在相关的'target'DIV中,试试这个

$(".source ").each(function(){
    var rel_attr = $(this).attr('rel');
    $('.source-' + rel_attr).appendTo('.target-' + rel_attr);
});