मैं जेएस तत्व कैसे बदल सकता हूं यह देखने के लिए कि यह नोड या खाली चर है या नहीं?जांचें कि क्या वैरिएबल एक वैध नोड तत्व है
उत्तर
यह एक खाली चर द्वारा आपके मतलब पर निर्भर करता है।
क्या आपका मतलब यह सौंपा एक मूल्य नहीं पड़ा है, तो आप undefined
alert(someVariable !== "undefined");
के लिए जाँच कर सकते हैं या यदि आप जानते हैं कि यह एक मूल्य है, और अगर यह एक तत्व है यह देखने के लिए की जरूरत है, तुम कर सकते हो कुछ इस तरह:
alert(someVariable && someVariable.nodeType);
या यदि आप सत्यापित करने के लिए कि यह एक प्रकार 1 तत्व है की जरूरत है, तो आप ऐसा कर सकते हैं:
alert(someVariable && someVariable.nodeType === Node.ELEMENT_NODE);
यह टेक्स्ट नोड्स, विशेषता नोड्स, टिप्पणियां, और a bunch of others को समाप्त करता है।
एक नोड? एक डोम तत्व? इसमें .nodeType
संपत्ति होगी।
अन्य उत्तर के लिए nodeValue
के बारे में, nodeValue खाली हो सकता है लेकिन एक नोड हमेशा एक nodeType
होगा।
एचटीएमएल तत्व का प्रयोग और क्रोम देव उपकरण में गुण टैब पर एक नज़र ले जा हम वंश देख सकते हैं:
html-> HTMLHtmlElement-> HTMLElement-> तत्व> Node-> EventTarget- > वस्तु
अब हम नहीं कोई बात नहीं क्या, भी कई अलग अलग संभावनाएं ताकि HTMLElement या तत्व के साथ हमें छोड़ पहले 2 जाँच करना चाहते हैं। तो अंतर क्या है?
एचटीएमएल, प्रमुख, स्क्रिप्ट, मेटा, शरीर, DIV, पी और यूएल सभी एक ही विरासत है:
HTMLElement-> तत्व> Node-> EventTarget-> वस्तु
एक ठेठ दस्तावेज़ से अब कुछ नकारात्मक परिणाम जहां:
<!DOCTYPE html> DocumentType->Node->EventTarget->Object
<!-- COMMENT --> Comment->CharacterData->Node->EventTarget->Object
तो नोड आम संप्रदाय है, लेकिन सवाल यह है कि वैध डॉम नोड की जांच कैसे करें, यह मान्य डॉम नोड तत्व की जांच कैसे करें। तो HTMLElement के साथ कोई ऑब्जेक्ट सत्य लौटने के लिए, अन्यथा झूठी वापसी।
ठीक है अब Chrome डेवलपर टूल का उपयोग करके HTML तत्व को देखने की सुविधा देता है:
$obj.nodeType; //1 No help what so ever
$obj.nodeName; //HTML Gives use the tag names
$obj.nodeValue; //null Waste of DOM space
के प्रोटोटाइप या __proto जाँच करें?
$obj.prototype.nodeType; //TypeError
$obj.prototype.nodeName; //TypeError
$obj.prototype.nodeValue; //TypeError
$obj.__proto__.nodeType; //undefined
$obj.__proto__.nodeName; //undefined
$obj.__proto__.nodeValue; //undefined
ठीक है इसलिए नोड का उपयोग करने के लिए उपयोग किया जाता है। आइए निर्माता को ले जाएं।
$obj.constructor.name
//"HTMLHtmlElement" promising...
$obj.constructor.__proto__.prototype.toString()
//[object Object]
$obj.constructor.__proto__.constructor.name
Function
$obj.constructor.__proto__.prototype.constructor.name
HTMLElement
//BINGO
अब एक अच्छी स्वच्छ कुशल उपयोगिता फ़ंक्शन में लपेटें।
//readable version
isElement=function($obj){
try {
return ($obj.constructor.__proto__.prototype.constructor.name)?true:false;
}catch(e){
return false;
}
}
/**
* PRODUCTION
* Return true if object parameter is a DOM Element and false otherwise.
*
* @param {object} Object to test
* @return {boolean}
*/
isElement=function(a){try{return a.constructor.__proto__.prototype.constructor.name?!0:!1}catch(b){return!1}};
टेस्ट:
$html=get('html')[0]; //[<html data-role="webpage" data-theme="dark" data-require="fa" data-hello="world">…</html>]
isElement($html); //"HTMLElement"
isElement($html.dataset); //false
isElement($html.firstChild); //"HTMLElement"
isElement($html.textContent); //false
$tail=gei('tail'); //<tail id="tail">…</tail>
isElement($tail); //"HTMLElement"
isElement(get('title')[0]); //"HTMLElement"
मध्यस्थ बताते हैं कि हमेशा एक नोड टाइप होता है और यह सही है। यह पहली चीज थी जिसे मैंने चेक किया था और मान 1 है। मानक परिभाषित नोड टाइप 1 "तत्व \t तत्व \t तत्व, पाठ, टिप्पणी, प्रसंस्करण निर्देश, सीडीएटीएएसएक्शन, EntityReference" का प्रतिनिधित्व करता है। प्रश्न 'एलिमेंट' के लिए पाठ, टिप्पणी इत्यादि नहीं था। तो मेरा isElement() फ़ंक्शन सही तरीका है? या मैं गलत हूँ? – NlaakALD
- 1. जांचें कि दस्तावेज़ रूट नोड
- 2. जांचें कि क्या एक्सएमएल नोड में एक विशेषता है
- 3. जांचें कि क्या XML तत्व मौजूद है
- 4. जांचें कि क्या नोड सेट में XSLT
- 5. जांचें कि तत्व मौजूद है
- 6. जांचें कि तत्व DIV
- 7. जांचें कि क्या एक HTML5 वीडियो तत्व खेल रहा है
- 8. केकफ़्पी: जांचें कि दृश्य तत्व मौजूद है
- 9. jQuery जांचें कि ऑनक्लिक तत्व
- 10. सी ++ जांचें कि तत्व सरणी
- 11. जांचें कि क्या स्ट्रिंग वैध यूटीएफ -8 जावा
- 12. बैश स्क्रिप्टिंग - जांचें कि बैश वैरिएबल 0
- 13. जावास्क्रिप्ट: जांचें कि तत्व बदल गया है
- 14. as3 xml जांचें कि तत्व मौजूद है
- 15. जांचें कि एचटीएमएल तत्व समर्थित है
- 16. जांचें कि क्या यूट्यूब और वीमियो-क्लिप वैध हैं
- 17. जांचें कि क्या तत्व एनिमेटेड किया जा रहा है CSS3
- 18. जांचें कि क्या तत्व में कोई बच्चा है?
- 19. जांचें कि क्या GoogleMap कैनवास तत्व पहले से निष्क्रिय है
- 20. जांचें कि क्या xml नोड में उप बच्चा
- 21. जांचें कि क्या हैशबल
- 22. जांचें कि क्या एक पंक्ति
- 23. जांचें कि क्या Guava
- 24. एक्सपैथ/एक्सएसएलटी: जांचें कि निम्न भाई एक विशेष नोड
- 25. जांचें कि क्या चर PHP
- 26. जांचें कि क्या डोम एलिमेंट एक चेकबॉक्स है
- 27. एक तत्व है कि एक और तत्व
- 28. जांचें कि कौन सा तत्व jQuery
- 29. jQuery जांचें कि तत्व में सीएसएस विशेषता
- 30. Ember.js: जांचें कि क्या देखने के तत्व को DOM
nodeValue खाली/खाली/बातिल हो सकता है, नहीं? '!! (document.createElement ('p'))। nodeValue' –
जब तक यह संपत्ति 'नोड टाइप' के साथ कुछ अन्य वस्तु नहीं है। संभावनाएं पतली हैं, हालांकि। – crush