मान लीजिए कि मेरे पास निम्न आवश्यकता है: तत्व e
आईडी "x"
के साथ तत्व में जोड़ें यदि कोई तत्व मौजूद है, अन्यथा शरीर में e
जोड़ें।यदि कोई अन्य मौजूद नहीं है तो JQuery में कोई तत्व चुनने का कोई शानदार तरीका है?
DOM स्तर में 0 में, मैं लिख सकते हैं:
var parent = document.getElementById("x") || document.body;
parent.appendChild(e);
jQuery में, निम्न करता नहीं काम:
var parent = $("#x") || $("body");
parent.append(e);
क्योंकि अगर आईडी x
मौजूद है के साथ कोई तत्व, पहले असंबद्ध रिक्त jquery ऑब्जेक्ट देता है, सच है, झूठी नहीं है, इसलिए append
कुछ भी नहीं करता है। मैं कर सकते हैं, तथापि, लिखें:
var parent = $("#x")[0] || $("body")[0];
parent.appendChild(e);
लेकिन क्योंकि jQuery वस्तु का अनुक्रमण मुझे वापस हो जाता है HTMLElements के लिए इस समाधान कुछ हद तक भद्दा है, इसलिए मैं appendChild
बजाय append
उपयोग करना चाहिए। हालांकि यह काम करता है, मैं सोच रहा हूं कि स्तरों का मिश्रण मिश्रण या खराब डिजाइन का संकेतक है या नहीं।
first()
का उपयोग करने का कोई तरीका हो सकता है? शायद मैं एक jQuery ऑब्जेक्ट बना सकता हूं जो अनिवार्य रूप से एक सरणी था जिसका पहला तत्व आईडी एक्स के साथ div था, और दूसरा शरीर था। मुझे पता है कि मैं इसे jQuery कन्स्ट्रक्टर फॉर्म के साथ कर सकता हूं जो एक तत्व सरणी लेता है, लेकिन फिर मैं स्तरों के मिश्रण पर वापस आ जाता हूं। मैं यह भी जानता हूं कि आईडी एक्स ($("#x").length
) वाले तत्व के अस्तित्व की जांच कैसे करें, लेकिन मैं नहीं देख सकता कि यह कैसे "आईडी एक्स के साथ तत्व मौजूद है, अन्यथा शरीर" के लिए एक शानदार तरीका होगा।
क्या ऐसा कोई सूत्र मौजूद है?
ओह, यह सुंदर है, हालांकि - जब तक कि jQuery यहां कुछ वास्तव में गंभीर जादू नहीं करता है - इसमें लघु-सर्किटिंग के बजाय पहले व्यक्ति को वापस करने से पहले * सभी * तत्वों का चयन करने का प्रदर्शन नकारात्मक होता है। फिर भी, अगर हम उस स्तर के प्रदर्शन की परवाह करते हैं, तो हमें वास्तव में पहले स्थान पर jQuery का उपयोग नहीं करना चाहिए। – Matchu
नहीं, यह तब से काम नहीं करेगा ["लौटे हुए jQuery ऑब्जेक्ट में डीओएम तत्वों का क्रम समान नहीं हो सकता है, क्योंकि वे दस्तावेज़ ऑर्डर में होंगे।"] (Http://api.jquery.com/multiple- चयनकर्ता /), उदाहरण के लिए: http://jsfiddle.net/ambiguous/edYY6/। यह आपको हर बार '
'देगा। –सहमत हैं कि यह बहुत अच्छा है। हम प्रत्येक में से एक के साथ ठीक है (या होना चाहिए), क्योंकि पहले व्यक्ति में एक आईडी है, जो पृष्ठ पर अद्वितीय होना चाहिए, और दूसरा ** ** शरीर तत्व है। एचटीएमएल में इनमें से केवल एक होना चाहिए। –