2013-10-23 181 views
2

我有一些文章類的元素。這些元素具有paper-id屬性。我希望他們移動到相應的div中,該div應該具有類面板paper-id,其中paper-id與相應元素中的paper-id屬性相同。使用jQuery元素屬性追加到匹配元素

我離開這裏使用jQuery(this)(這顯然是行不通的)的一個例子,是想說明什麼,我需要

jQuery('.article').appendTo(".panel-" + jQuery(this).attr('paper-id')); 
+1

你想介紹一下你的'HTML'的樣本嗎? –

+1

請記住'data-paperid'是'paper-id'不是一個有效的屬性。 –

+0

爲自定義屬性使用'data-'前綴。 –

回答

0

不要使用發明的屬性。對於自定義屬性,始終使用data-*屬性。

HTML例如:

<div class="article" data-paperid="2"> I'm paper 2 </div> 

的jQuery:

jQuery(function($) { 

    $('.article').each(function() { 
     var myDataId = $(this).data('paperid'); 
     $(this).appendTo('.panel'+ myDataId); 
    }); 

}); 

Data attribute reference + guide

1

小提琴:http://jsfiddle.net/6B9xk/3/

HTML

<div class='article' paper-id='1'>paper 1</div> 
<div class='article' paper-id='2'>paper 2</div> 
<div class='article' paper-id='3'>paper 3</div> 
<div class='article' paper-id='3'>paper 3</div> 
<div class='article' paper-id='4'>paper 4</div> 

<div class='panel' panel-paper-id='1'></div> 
<div class='panel' panel-paper-id='2'></div> 
<div class='panel' panel-paper-id='3'></div> 
<div class='panel' panel-paper-id='4'></div> 

的JavaScript

$('.article').each(function(i, el){ 
    $("div[panel-paper-id='"+ $(el).attr('paper-id') +"']").append($(this)); 
}); 

輸出

<div class='panel' panel-paper-id='1'> 
    <div class='article' paper-id='1'>paper 1</div> 
</div> 
<div class='panel' panel-paper-id='2'> 
    <div class='article' paper-id='2'>paper 2</div> 
</div> 
<div class='panel' panel-paper-id='3'> 
    <div class='article' paper-id='3'>paper 3</div> 
    <div class='article' paper-id='3'>paper 3</div> 
</div> 
<div class='panel' panel-paper-id='4'> 
    <div class='article' paper-id='4'>paper 4</div> 
</div> 
1

你可以試試這個

$(function(){ 
    $('.article').each(function(k, v){ 
     $(".panel-" + $(v).data('paper-id')).append($(v)); 
    }); 
}); 

An Example.