2014-10-08 8 views
6

के साथ कुछ करें मेरे पास एक वर्ग है और यदि यह मौजूद है, तो मैं चर को सत्य/गलत के रूप में उपयोग करना चाहता हूं।यदि वर्ग मौजूद है, तो जावास्क्रिप्ट

एचटीएमएल

<div id="snake" class="snake--mobile"> 

जे एस

var isMobileVersion = document.getElementsByClassName('snake--mobile'); 
if (isMobileVersion !== null) 
    alert('xx'); 

हालांकि, यह काम नहीं कर रहा। कोई विचार? कृपया कोई jQuery जवाब नहीं है।

+0

संभव डुप्लिकेट [कैसे करता है, तो एक तत्व एक और तत्व में मौजूद जाँच करने के लिए?] (Http://stackoverflow.com/questions/7174122/how-to-check-if-an -element-exist-in-another-element) – davidcondrey

+0

@dcc मैं एक गैर-jQuery समाधान चाहता था – Alex

+0

http://stackoverflow.com/questions/5783280/check-if-div-with-certain-class-name-exists – davidcondrey

उत्तर

16

getElementsByClassNameNodeList देता है जो सरणी जैसी वस्तु है। आप अपने length जाँच करके तय करें कि परिभाषित वर्ग के साथ तत्व मौजूद कर सकते हैं:

var isMobileVersion = document.getElementsByClassName('snake--mobile'); 
if (isMobileVersion.length > 0) { 
    // elements with class "snake--mobile" exist 
} 
+0

धन्यवाद, यह काम करता है! – Alex

3

getElementsByClassName एक NodeList देता है। यह कभी भी null नहीं होगा। इसमें 0 का .length हो सकता है।

2

मैंने इसका परीक्षण किया है। यह पूरी तरह से काम कर रहा है। आपने कोई और गलती की हो सकती है। getElementsByClassName वापसी खाली यदि कक्षा के साथ दिए गए तत्वों की श्रेणी या वापसी सूची के साथ कोई तत्व नहीं मिला है। तो आप इंडेक्स का उपयोग कर इसे एक्सेस कर सकते हैं।

var isMobileVersion = document.getElementsByClassName('snake--mobile'); 
 
if (isMobileVersion.length > 0) { 
 
    isMobileVersion[0].style.color="red"; 
 
    alert('class exist'); 
 
}
<div id="snake" class="snake--mobile">Class Exist div </div>

की
+0

** आप गलत हैं। ** 'getElementsByClassName' कभी भी' शून्य 'वापस नहीं लौटाता है। आपके उदाहरण में आप 'शून्य' नहीं होने के परिणाम को जांचते हैं, जो हमेशा 'सत्य' होगा, क्योंकि 'नोडलिस्ट' ऑब्जेक्ट गलत नहीं है। "कक्षा * नहीं * मौजूद" के खिलाफ जांच करने का प्रयास करें और आप देखेंगे। – VisioN

+0

मैंने अपना उदाहरण चेक किया है। कक्षा नहीं मिलने पर यह खाली वस्तु वापस कर देगा। मेरी गलती को सुधारने के लिए thanx @VisioN –

+0

फिर भी, आपके अपडेट ने समस्या को ठीक नहीं किया है, क्योंकि 'if (x) 'अभी भी' true' मान की जांच करेगा। तत्वों का अस्तित्व का आकलन करने का एकमात्र तरीका है 'लंबाई' संपत्ति की तुलना '0' के साथ करें, जैसा कि अन्य उत्तरों में वर्णित है। – VisioN

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