jQuery के परिशिष्ट () - संलग्न तत्वों को लौटाएं


188

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

इसलिए मैं यह करना चाहता हूं:

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

जवाबों:


263

ऐसा करने का एक सरल तरीका है:

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

यह चीजों को पहले बनाने के newHtmlसाथ-साथ बदल देता है jQuery(html [, ownerDocument ]), और फिर appendTo(target)"( To" बिट) का उपयोग करके इसे अंत तक जोड़ने के लिए ध्यान दें #mydiv

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


2
JQuery यूआई संस्करण 1.9.2 का उपयोग कर मैं effectsएक समारोह नहीं कर रहा हूँ ... लेकिन effectहै
फिलिप एम

मैं जोड़ूंगा कि एक और हस्ताक्षर भी है: appendTo (लक्ष्य, संदर्भ)। किसी भी jQuery के चयनकर्ता के रूप में यह लक्ष्य के लिए खोज करने की अनुमति देता है, लेकिन केवल एक विशिष्ट संदर्भ के अंदर ही। यदि आप प्लगइन्स या लाइब्रेरी लिखते हैं तो यह बहुत उपयोगी हो सकता है।
पियरपॉलो Cira

1
यह एक त्रुटि फेंक होगा यदि newHtmlमान्य HTML या एक वैध jQuery चयनकर्ता नहीं है: $('/ This is Not HTML /').appendTo('#myDiv')में परिणाम Uncaught Error: Syntax error, unrecognized expressionहै, जबकि $('#myDiv').append('/ This is Not HTML /')लक्ष्य तत्व करने के लिए पाठ जोड़कर ठीक से काम करता है।
थॉमस सीजी डी विलेना

40
// 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 (तत्व) का उपयोग किया। मैं तब $ (appendedTarget) .bind ('कीडाउन', someFunc) का उपयोग करके बाँध सकता था
Zac Imboden

मुझे लगता है कि यह $elements.effect("highlight", {}, 2000);नहीं है effects
क्यों

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

@AlexV यह काम करने लगता है, jsbin.com/xivedohofi/1/edit?html,js,output पर लाइव डेमो देखें, इसी तरह के प्रश्न के लिए स्वीकार किए गए उत्तर को भी देखें समान प्रश्न stackoverflow.com/questions/1433233/…
Adrien Be

2
ऐसा लगता है कि उन्होंने इसे jQuery के नए संस्करणों में तय किया है।
वी पर एलेक्स वी


10

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

डेमो

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

19
परिशिष्ट () से लौटा तत्व कंटेनर है और नया तत्व नहीं है।
टॉमस

0

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

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

माता-पिता #parentId को परिशिष्ट से लौटाया जाता है, इसलिए अंतिम दिव्यांग बच्चे को सम्मिलित करने के लिए इसमें एक jquery बच्चों की क्वेरी जोड़ें।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.