स्टाइलशीट्स के लिए डीओएम एक्सेस है, लेकिन यह उन चीजों में से एक है जिन्हें हम टालना चाहते हैं क्योंकि आईई को संगतता क्रुफ्ट का भार चाहिए।
एक बेहतर तरीका आम तौर पर किया जाएगा परोक्ष रूप से परिवर्तन को गति प्रदान करने, एक पूर्वज पर एक साधारण वर्ग परिवर्तन का उपयोग किया:
td { padding: 0.2em 1.2em }
body.changed td { padding: 0.32em 2em }
अब बस $('body').addClass('changed')
और सभी td
रों अद्यतन।
तुम सच में स्टाइलशीट frob चाहिए:
var sheet= document.styleSheets[0];
var rules= 'cssRules' in sheet? sheet.cssRules : sheet.rules; // IE compatibility
rules[0].style.padding= '0.32em 2em';
मतलब यह है कि प्रश्न में td
नियम पहले स्टाइलशीट में पहला नियम है। यदि नहीं, तो आपको सही चयनकर्ता टेक्स्ट की तलाश में नियमों को पुन: स्थापित करके इसे खोजना पड़ सकता है। या सिर्फ अंत करने के लिए एक नया नियम जोड़ने, पुराने एक अधिभावी:
if ('insertRule' in sheet)
sheet.insertRule('td { padding: 0.32em 2em }', rules.length);
else // IE compatibility
sheet.addRule('td', 'padding: 0.32em 2em', rules.length);
jQuery ही आप स्टाइलशीट का उपयोग करने की किसी भी विशेष उपकरण नहीं देता है, लेकिन यह संभव है वहाँ वाले प्लग इन हो सकता है कर रहे हैं।
यह ध्यान देने योग्य है कि आईई (सहित आईई 10) मूल 'selectorText' को संरक्षित नहीं करता है। सीएसएस स्टाइलशीट में '.foo.bar' के रूप में लिखा गया कुछ DOM नियम ऑब्जेक्ट में '.bar.foo' के रूप में समाप्त हो सकता है। यह असाधारण रूप से भंगुर "सही चयनकर्ता पाठ के लिए शिकार" बनाता है। – Tomalak
@Tomalak: दाएं - और वास्तव में, मूल चयनकर्ता के समान सटीक स्ट्रिंग रखने के लिए 'selectorText' के लिए spec में कोई आवश्यकता नहीं है। यह 'आंतरिक HTML' जैसा ही है - पार्सर स्रोत को ऑब्जेक्ट्स के समूह में परिवर्तित करता है, और उसके बाद संपत्ति परिणामों को एक क्रमिकरण में पढ़ता है जो पाठ का प्रतिनिधित्व करने वाले पाठ को दर्शाता है, लेकिन एक धारावाहिक जो किसी भी तरह से नहीं है स्रोत के समान होने की गारंटी है। नतीजतन सटीक 'selectorText' के लिए खोज स्वाभाविक रूप से अविश्वसनीय है। – bobince
इस उत्तर का सबसे अच्छा हिस्सा यह है: "एक बेहतर तरीका ... पूर्वजों पर वर्ग परिवर्तन" –