2013-08-24 8 views
30

में वर्ग द्वारा तत्व छुपाएं मैंने निम्नलिखित कोड का प्रयास किया है, लेकिन यह doesn't work है। कोई विचार जहां मैं गलत हो गया है? के रूप में मैं ऑब्जेक्टिव-सी में [self->webView stringByEvaluatingJavaScriptFromString:@""]; उपयोग कर रहा हूँशुद्ध जावास्क्रिप्ट

document.getElementsByClassName('appBanner').style.visibility='hidden';
<div class="appBanner">appbanner</div>

jQuery का उपयोग करना या HTML बदलते संभव नहीं है।

+1

getElementsByClassName तत्वों की एक सरणी देता है। आपको कुछ ऐसा चाहिए: document.getElementsByClassName ('appBanner') [0] .style.visibility = 'छुपा'; – bitfiddler

उत्तर

54

document.getElementsByClassName कक्षा नाम से मेल खाने वाले सभी तत्वों के HTMLCollection (एक सरणी जैसी वस्तु) देता है। style संपत्ति Element के लिए HTMLCollection के लिए परिभाषित नहीं है। आपको ब्रैकेट (सबस्क्रिप्ट) नोटेशन का उपयोग करके पहले तत्व का उपयोग करना चाहिए।

document.getElementsByClassName('appBanner')[0].style.visibility = 'hidden'; 

Updated jsFiddle

वर्ग मिलान सभी तत्वों की शैली नियमों को बदलने के लिए, चयनकर्ता एपीआई का उपयोग कर:

[].forEach.call(document.querySelectorAll('.appBanner'), function (el) { 
    el.style.visibility = 'hidden'; 
}); 

तो for...of उपलब्ध है:

for (let el of document.querySelectorAll('.appBanner')) el.style.visibility = 'hidden'; 
+0

fedeetz/Atanas Korchev अधिक प्रत्यक्ष उत्तर 24AUG2013 प्रदान करते हैं। पसंदीदा। – treeFan

+0

ध्यान दें कि यह केवल क्लास नाम 'एपबैनर' – HoffZ

21
var appBanners = document.getElementsByClassName('appBanner'), i; 

for (var i = 0; i < appBanners.length; i ++) { 
    appBanners[i].style.display = 'none'; 
} 

JSFiddle.

+0

के साथ पहला तत्व छुपाएगा, मैं जेएस पर शुरुआत करता हूं, लेकिन आप पहली पंक्ति पर ', i;' क्यों लिखते हैं? यह चक्र के लिए प्रयोग किया जाता है? (लेकिन हम बाद में चक्र में 'i' घोषित करते हैं) या यह छोटी गलती है? या शायद यह कुछ "सर्वोत्तम अभ्यास" है? क्या आप इसे टिप्पणी कर सकते हैं। –

+1

@ डेनिससेवेन्को यह बस एक दूसरी var घोषित कर रहा है। – Joshpbarron

+3

@DenisSavenko - यह अल्पविराम से अलग किए गए एकाधिक चर घोषित करने के लिए मान्य 'var' वाक्यविन्यास है, लेकिन इस मामले में यह * गलती है * * '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' वास्तव में एक त्रुटि का कारण नहीं है, यह सिर्फ बेवकूफ है। – nnnnnn

1

Array.filter(document.getElementsByClassName('appBanner'), function(elem){ elem.style.visibility = 'hidden'; });

काँटेदार @http://jsfiddle.net/QVJXD/

+0

FYI: Array.filter एक जेएस फ़ंक्शन नहीं है। ऐसा लगता है कि यह Mootools का उपयोग करता है। –

+0

'Array.Filter 'जावास्क्रिप्ट – user4943236

-5
<script type="text/javascript"> 
     $(document).ready(function(){ 

       $('.appBanner').fadeOut('slow'); 

     }); 
    </script> 

या

<script type="text/javascript"> 
     $(document).ready(function(){ 

       $('.appBanner').hide(); 

     }); 
    </script> 
+0

के साथ काम नहीं करता है ओपी jQuery का उल्लेख नहीं करता है –

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