2013-08-25 8 views
14

मान लें कि मेरे पास <div> है जिसमें कुछ यादृच्छिक तत्व हैं, लेकिन एक अद्वितीय तत्व है जो मैंने इस अद्वितीय चयनकर्ता के साथ बनाया है: $('.myUniqueElement')। मैं अपने <div> में पिछले बच्चे की स्थिति में इस तत्व को स्थानांतरित करने के लिए .insertAfter() का उपयोग करना चाहता हूं? उपाय क्या है ?jquery move element पिछले बच्चे की स्थिति

यह मेरा समाधान है: http://jsfiddle.net/silverlight/RmB5K/3/ यह ठीक है ??

HTML:

<div class='p'> 
    <div class='myUniqueElement'>unique</div> 
    <div>item</div> 
    <div>item</div> 
    <div>item</div> 
</div> 
<input type='button' id='b' value='Do'/> 

जावास्क्रिप्ट:

$('#b').on('click',function(){ 
    $('.myUniqueElement').insertAfter($('.p :last-child')) 
}); 

सीएसएस:

.myUniqueElement{color:red;} 
+0

पोस्ट अपने HTML स्निपेट ... –

+0

इस मेरा समाधान है, क्या यह ठीक है?[fiddle] (http://jsfiddle.net/silverlight/RmB5K/3/) – Omid

+0

फीडल –

उत्तर

24

var mydiv = $('my-div-selector'); 
mydiv.find('.myUniqueElement').appendTo(mydiv) 

या साधारण

$('my-div').append($('.myUniqueElement')) 
+0

http://jsfiddle.net/arunpjohny/6c6zr/1/ –

+0

http://jsfiddle.net/silverlight/RmB5K/3/ यह सही है? – Omid

+1

@OMiD हाँ यह है –

-1

आदेश insertAfter() का उपयोग करने के लिए आपको तत्व जिसके बाद आप अपने तत्व ले जाना चाहते हैं पता होना चाहिए सेवा मेरे। और जैसा कि आपने कहा था कि आपके पास यादृच्छिक तत्व हैं, और निश्चित रूप से आप वर्तमान अंतिम तत्व को नहीं जानते हैं, तो यहां आप क्या कर सकते हैं।

अपने तत्व को क्लोन करें जिसे आप ले जाना चाहते हैं और इसे मूल तत्व में जोड़ना चाहते हैं।

jQuery कोड इस तरह दिखता है:

$clone_elem = $('.myUniqueElement').clone(); 
$('.myUniqueElement').remove(); 
$('div').append($clone_elem); 

चेकआउट इस fiddle

+1

क्या यह ठीक है? http://jsfiddle.net/silverlight/RmB5K/3/ – Omid

+0

अच्छा, आपको बेहतर समाधान मिला है, आपके लिए +1। –

+0

'.clone' का उपयोग केवल तभी किया जाना चाहिए यदि आप वास्तव में किसी तत्व को प्रतिलिपि बनाना चाहते हैं। _Moving_ तत्वों को कॉपी किए बिना परीक्षण किया जाता है। – Alnitak

-1

विकास सही है। हालांकि, शायद यह एक यह के एक उन्नत संस्करण के बाद से मूल तत्व निकाल दिया जाता है, न कि अपने क्लोन ....

$elem = $('.myUniqueElement') 
    $('div').append($elem.clone()); 
    $elem.remove(); 
2

यह प्रयास करें मेरा समाधान है और मुझे लगता है कि यह .insertAfter() का उपयोग करने का सबसे अच्छा तरीका है:

एचटीएमएल:

<div class='p'> 
    <div class='myUniqueElement'>unique</div> 
    <div>item</div> 
    <div>item</div> 
    <div>item</div> 
</div> 
<input type='button' id='b' value='Do'/> 

jQuery:

$('#b').on('click',function(){ 
    $('.myUniqueElement').insertAfter($('.p :last-child')) 
}); 

बिंदु :last-child है और इस बेला है: http://jsfiddle.net/silverlight/RmB5K/3/

6

.insertAfter उपयोग करने के लिए कोई जरूरत नहीं है। आपको .clone का उपयोग करना चाहिए क्योंकि यह किसी भी संलग्न डेटा या ईवेंट को तब तक हटा देगा जब तक कि आप .clone(true) का उपयोग न करें।

सीधे शब्दों में div को लक्ष्य तत्व जोड़ने के लिए .appendTo का उपयोग करें और यह अपनी मूल स्थिति से अलग और div के अंतिम बच्चे के रूप में जोड़ दिया जाएगा:

$('.myUniqueElement').appendTo('#my-div'); 
संबंधित मुद्दे