मैंने अपने आवेदन में 'लोडिंग' नामक एक कस्टम jquery ईवेंट बनाया। जब यह घटना ट्रिगर होती है, तो मैं एक स्पिनर के साथ मास्किंग तत्व जोड़ना चाहता हूं। मैं बिना किसी समस्या के उस हिस्से को समझ सकता हूं। हालांकि, कुछ तत्व (छवियों, रूप इनपुट, आदि ..) बाल तत्वों को जोड़ नहीं सकते हैं। मुझे यह पता लगाने में सक्षम होना चाहिए कि इस घटना का लक्ष्य बाल तत्व प्राप्त कर सकता है या नहीं। यदि यह नहीं हो सकता है, तो मैं स्पिनर & मास्क को इसके मूल तत्व में जोड़ दूंगा।आप कैसे पता लगा सकते हैं कि कोई HTML तत्व बाल नोड्स को जोड़ सकता है या नहीं?
उत्तर
आप नाम की जांच करने के लिए है:
/*global $, jQuery */
function isVoid(el) {
var tags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input',
'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'],
i = 0,
l,
name;
if (el instanceof jQuery) {
el = el[0];
}
name = el.nodeName.toLowerCase();
for (i = 0, l = tags.length; i < l; i += 1) {
if (tags[i] === name) {
return true;
}
}
return false;
}
और इस तरह इसका इस्तेमाल:
var el = document.getElementById('el'),
elj = $('#el');
if (!isVoid(el)) {
// append
}
आप बच्चे तत्व जोड़ सकते हैं, वे बस प्रस्तुत नहीं करेंगे। यह एक अर्थपूर्ण भेद की तरह लग सकता है, लेकिन यह आपकी समस्या के लिए महत्वपूर्ण है: DOM नहीं जानता है कि कोई विशेष टैग प्रस्तुत किया गया है या नहीं।
आपका सबसे अच्छा शर्त सिर्फ जांच करने के लिए मार्गदर्शन है:
var allowChildren = function(elem) {
return ! (elem.nodeName in { INPUT : true, IMG : true }) ;
};
मुझे लगता है कि बूलियन वाक्य रचना कभी नहीं देखा है। क्या यह वैध है? तो मुझे लगता है कि मैं शून्य तत्वों के लिए कल्पना देख सकता हूं, और इसे उस हैश में जोड़ सकता हूं। – demersus
मुझे लगता है कि शून्य तत्वों की एक तालिका बनाना एकमात्र वास्तविक समाधान होगा। हालांकि मुझे लगता है कि आपका मतलब है 'वापसी! {इनपुट: सत्य, img: true} [elem.nodeName] ' –
http://jsfiddle.net/mblase75/eGyRH/3/ - क्रोम मुझे एक बच्चे तत्व को' 'टैग, भले ही यह बिल्कुल प्रदर्शित न हो। यह डोम डीबगर में दिखाई देता है, बस ब्राउजर विंडो में नहीं। – Blazemonger
http://jsfiddle.net/mblase75/eGyRH/3/ - क्रोम मुझे <input>
टैग में एक बाल तत्व जोड़ने देता है, भले ही यह बिल्कुल प्रदर्शित न हो। यह डोम डीबगर में दिखाई देता है, बस ब्राउजर विंडो में नहीं।
हालांकि, मैं यह .width()
है परीक्षण करने और शून्य या नहीं के बराबर है देख सकते हैं: http://jsfiddle.net/mblase75/eGyRH/4/
alert($('.element').append('<span>asdf</span>').children().width());
बहरहाल, यह भी शून्य चौड़ाई अगर, उदाहरण के लिए, मैं एक छिपा करने के लिए अवधि जोड़ रहा हो जाएगा div: http://jsfiddle.net/mblase75/eGyRH/5/ - तो यह पूरी तरह विश्वसनीय नहीं है।
स्वीकार्य उत्तर which types of nodes can be void पर आधारित एक बहुत अच्छी नीलामी है। यह एक jQuery एक लाइनर से बदला जा सकता है:
node.is("area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr")
- 1. क्या आप यह पता लगा सकते हैं कि एक Django मॉडल उदाहरण "गंदा" है या नहीं?
- 2. क्या आप HtmlGenericControl में बाल नियंत्रण जोड़ सकते हैं?
- 3. आप कैसे पता लगा सकते हैं कि उपकरण में किसी ऑब्जेक्ट को बनाए रखना क्या है?
- 4. जोड़ सकते हैं या
- 5. क्या आप पता लगा सकते हैं कि सी # फ़ील्ड को डिफ़ॉल्ट मान असाइन किया गया है या नहीं?
- 6. आप कैसे पता लगा सकते हैं कि तारों में दो नियमित अभिव्यक्ति ओवरलैप हो सकती हैं या नहीं?
- 7. कौन से HTML तत्वों में बाल नोड्स नहीं हो सकते हैं?
- 8. मैं कैसे पता लगा सकता हूं कि कोई उपयोगकर्ता कीबोर्ड से दूर है या नहीं?
- 9. मैं कैसे पता लगा सकता हूं कि ब्राउज़र ब्लिंक टैग का समर्थन करता है या नहीं?
- 10. मैं कैसे पता लगा सकता हूं कि कोई स्क्रीन संवेदनशील है या नहीं?
- 11. आप कैसे बता सकते हैं कि कोई एएसपी.NET अनुरोध रिमोट या लोकहोस्ट से है या नहीं?
- 12. आप कैसे जांच सकते हैं कि कोई तत्व एक उप प्रकार या किसी अन्य से संबंधित है या नहीं?
- 13. मैं कैसे पता लगा सकता हूं कि HTML तत्वों से कौन सी घटनाएं संलग्न हैं?
- 14. आप कैसे बता सकते हैं कि PostgreSQL में कोई ट्रिगर सक्षम है या नहीं?
- 15. जांचें कि कोई HTML इनपुट तत्व खाली है या उपयोगकर्ता
- 16. क्या आप पता लगा सकते हैं कि पीसी पर जावास्क्रिप्ट के माध्यम से क्लीयरटाइप सक्षम है या नहीं?
- 17. आप कैसे बता सकते हैं कि UpdatePanel पोस्टबैक में कोई विधि चल रही है या नहीं?
- 18. एसक्यूएल त्रुटि का पता नहीं लगा सकते हैं
- 19. इवेंटमैचिन - आप कैसे बता सकते हैं कि आप पीछे गिर रहे हैं या नहीं?
- 20. का पता नहीं लगा सकते हैं सत्र चर मौजूद है या नहीं
- 21. मैं कैसे पता लगा सकता हूं कि विशिष्ट डेल्फी आईडीई चल रहा है या नहीं?
- 22. मैं कैसे पता लगा सकता हूं कि मैंने टेबल अनुमति तैयार की है या नहीं?
- 23. जावास्क्रिप्ट का उपयोग करके, आप कैसे बता सकते हैं कि कोई उपयोगकर्ता पिछड़ा टैबबिंग कर रहा है या नहीं?
- 24. मैं कैसे पता लगा सकता हूं कि कोई ऑब्जेक्ट किसी विशेष विधि को लागू करता है या नहीं?
- 25. क्या आप पता लगा सकते हैं कि दिए गए संख्या में गोरौटाइन कितने धागे बनाएंगे?
- 26. मैं कैसे पता लगा सकता हूं कि AdMob ने विज्ञापन लोड किया है या नहीं?
- 27. मैं कैसे पता लगा सकता हूं कि मेरा ऐप सैंडबॉक्स है या नहीं?
- 28. मैं कैसे पता लगा सकता हूं कि मेरा ब्राउज़र फ़ायरफ़ॉक्स है या नहीं?
- 29. jQuery: पता लगाएँ कि तत्व मौजूद है
- 30. मैं कैसे पता लगा सकता हूं कि SQLite अनुक्रमणिका अद्वितीय है या नहीं? (एसक्यूएल के साथ)
indexOf arrays के लिए क्रॉस ब्राउज़र नहीं है: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf – Joe
यदि आप IE8 और पुराने – jasssonpet
नाइस का समर्थन करते हैं तो _.indexOf का उपयोग करें। यदि टेक्स्ट नोड अपना रास्ता पाता है तो बस '# text''' जोड़ने के लायक हो सकता है। –