मैं jQuery का उपयोग करते हुए एक तत्व के सीएसएस विशेषता को कैसे परेशान कर सकता हूं?


93

यदि मैं एक विशिष्ट तत्व का उपयोग करके CSS मान सेट करता हूं:

$('#element').css('background-color', '#ccc');

मैं उस तत्व-विशिष्ट मूल्य को अनसेट करने में सक्षम होना चाहता हूं और उसकी रेखाओं के साथ कैस्केड मूल्य का उपयोग करता हूं:

$('#element').css('background-color', null);

लेकिन यह वाक्यविन्यास काम नहीं करता है - क्या यह एक और वाक्यविन्यास का उपयोग करना संभव है?

संपादित करें: मान मूल तत्व से विरासत में नहीं मिला है - मूल मान तत्व-स्तर के चयनकर्ता से आता है। किसी भी भ्रम के लिए क्षमा करें!

जवाबों:


140

से jQuery डॉक्स :

स्टाइल प्रॉपर्टी की वैल्यू को एक खाली स्ट्रिंग में सेट करना - जैसे $('#mydiv').css('color', '')- उस प्रॉपर्टी को उस एलिमेंट से हटाता है अगर वह पहले ही सीधे लागू हो चुका है, चाहे वह HTML स्टाइल एट्रीब्यूट में हो, jQuery की .css()विधि से, या styleप्रॉपर्टी के डायरेक्ट DOM मैनिपुलेशन के माध्यम से हो । हालाँकि, यह ऐसी शैली को नहीं हटाता है जिसे स्टाइलशीट या <style>तत्व में CSS नियम के साथ लागू किया गया हो ।


मुझे यह सवाल तब आया जब मुझे यह समस्या हुई। मेरे मामले में मैं styleटैग पर एक विशेषता में सीएसएस विशेषता सेट कर रहा था , इसलिए यह विधि काम नहीं करती थी। .css()टैग के बजाय विधि के साथ शैली को लागू करने से मुझे बाद में इसे हटाने की अनुमति मिली।
ग्लेन मॉस

14

मुझे लगता है कि आप भी कर सकते हैं:

$('#element').css('background-color', '');

यही है कि मैं displayमैदान-पुरानी-जावास्क्रिप्ट में संपत्ति के लिए एक क्षेत्र को दिखाने / छिपाने के लिए बहुत समय पहले करता था ।


4

दरअसल, मुझे लगा कि वाक्य रचना गलत थी (के साथ null) काम करती दिख रही है - मेरा चयनकर्ता सिर्फ अनुचित रूप से बना था, और इस तरह से कोई तत्व नहीं था। डी 'ओह!


21
के रूप में jquery 1.4.3 css(..., null)काम नहीं करता है और css(..., '')इसके बजाय इस्तेमाल किया जाना चाहिए - Bugs.jquery.com/ticket/7233
टिम सिल्वेस्टर

3

इसे इस्तेमाल करे:

$('#element').css('background-color', 'inherit');

1
इनहेरिट दुर्भाग्य से वह व्यवहार नहीं है जिसकी मैं तलाश कर रहा हूं: "संपत्ति तत्व के माता-पिता के लिए संपत्ति के समान संपत्ति मानती है
cdleary

अधिक संभावना 'प्रारंभिक' 'विरासत' से। 'इनहेरिट' माता-पिता से स्वीकार करता है, 'आरंभ' वही करता है जो शब्द कहता है।
क्रिस एस।

0

क्या यह इसके लायक है के लिए IE 8 में 'फिल्टर' के लिए काम नहीं करता है, मुझे इसका इस्तेमाल करना पड़ा (फीका कॉलबैक में):

$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));

जाहिर है, मुझे खाली इनलाइन फ़िल्टर घोषणा को हटाने की आवश्यकता थी ताकि CSS प्रभावी हो सके; वहाँ अन्य इनलाइन नियम थे इसलिए मैं शैली विशेषता को हटा नहीं सका।


-1

यदि यह मदद कर सकता है, तो मैं दोहरे उद्धरण के साथ एक समस्या जोड़ सकता हूं:

$('#element').css("border-color", "");

जबकि काम नहीं करता

$('#element').css('border-color', '');

काम करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.