2010-01-29 15 views
161

मैं कुछ तत्वों को गतिशील रूप से जोड़ने के लिए jQuery.append() का उपयोग कर रहा हूं। क्या इन नए डाले गए तत्वों का jQuery संग्रह या सरणी प्राप्त करने का कोई तरीका है?jQuery संलग्न() - संलग्न तत्वों को वापस

तो मैं ऐसा करना चाहते हैं:

$(newHtml).appendTo('#myDiv').effects(...); 

यह पहली jQuery(html [, ownerDocument ]) साथ newHtml बनाने, और फिर appendTo(target) का उपयोग करके चारों ओर बातें बदल जाता है (ध्यान दें:

$("#myDiv").append(newHtml); 
var newElementsAppended = // answer to the question I'm asking 
newElementsAppended.effects("highlight", {}, 2000); 
+3

संभावित डुप्लिकेट [संलग्न तत्व से jQuery ऑब्जेक्ट प्राप्त करने का आसान तरीका] (http://stackoverflow.com/questions/1443233/easier-way-to-get-a-jquery-object-from-appended-element) – bluish

उत्तर

225

ऐसा करने के लिए सरल तरीका है "To" बिट) इसे #mydiv के अंत में जोड़ने के लिए।

क्योंकि आप अब $(newHtml) साथ शुरू appendTo('#myDiv') के अंतिम परिणाम है कि एचटीएमएल के नए बिट, और .effects(...) कॉल कि नई html के बिट पर भी हो जाएगा। append(), appendTo(), prepend() तरह

+3

मुझे लगता है कि मैं वास्तव में 'एपेंड' और 'प्रीपेन्ड' का उपयोग करने के मुकाबले कहीं ज्यादा 'एपेंडटो' और 'प्रीपेन्ड टू' का उपयोग करता हूं। –

+2

jQuery UI संस्करण का उपयोग करना 1.9.2 मुझे 'प्रभाव' मिल रहा है कोई फ़ंक्शन नहीं है ... लेकिन 'प्रभाव' –

+0

गतिशील रूप से AJAX के माध्यम से तत्व जोड़ने और .data() को जोड़ने के लिए अद्भुत काम करता है: D –

24
var newElementsAppended = $(newHtml).appendTo("#myDiv"); 
newElementsAppended.effects("highlight", {}, 2000); 
36
// wrap it in jQuery, now it's a collection 
var $elements = $(someHTML); 

// append to the DOM 
$("#myDiv").append($elements); 

// do stuff, using the initial reference 
$elements.effects("highlight", {}, 2000); 
+2

यह मेरे लिए तब तक काम नहीं करता जब मैंने बाद में संलग्न तत्व को एक ईवेंट बांधने की कोशिश की। मैंने var appendedTarget = $ (newHtml) .appendTo (element) का उपयोग किया। मैं फिर $ (appendedTarget) का उपयोग कर बाध्य कर सकता था। बाइंड ('कीडाउन', कुछ फनक) –

+0

मुझे लगता है कि यह '$ elements.effect (" हाइलाइट ", {}, 2000) है; ',' प्रभाव 'नहीं। – why

+2

यह काम नहीं करता है क्योंकि $ तत्वों को जोड़कर परिवर्तनीय, परिवर्तन और अब उपलब्ध नहीं है। –

8

एक छोटी सी अनुस्मारक, जब तत्वों गतिशील रूप से जोड़ा जाता है, कार्य या एक jQuery वस्तु, नहीं HTML डोम तत्व लौट prependTo()

DEMO

var container=$("div.container").get(0), 
    htmlA="<div class=children>A</div>", 
    htmlB="<div class=children>B</div>"; 

// jQuery object 
alert($(container).append(htmlA)); // outputs "[object Object]" 

// HTML DOM element 
alert($(container).append(htmlB).get(0)); // outputs "[object HTMLDivElement]" 
+15

परिशिष्ट() से लौटाया गया तत्व कंटेनर है और न कि नया तत्व। – Tomas

0

मुझे लगता है कि आप कुछ इस तरह कर सकता है:

var $child = $("#parentId").append("<div></div>").children("div:last-child"); 

माता पिता #parentId संलग्न से दिया जाता है, तो एक jQuery बच्चों क्वेरी जोड़ना यह पिछले पाने के लिए करने के लिए div बच्चा डाला गया।

$ बच्चे तब jquery लपेटा हुआ बच्चा div जोड़ा गया था।

संबंधित मुद्दे