2012-03-08 21 views
5
नहीं बदल सकते हैं

आधार एचटीएमएल डोम तत्व में मेरे शोध किसी भी डोम तत्व की "शैली" संपत्ति (http://www.w3schools.com/jsref/dom_obj_all.asp से) के बारे में इस का कहना है:<label> पाठ रंग

"style -- Sets or returns the style attribute of an element" 

'लेबल' टैग एक डोम तत्व है। और इस प्रकार इसकी एक 'शैली' संपत्ति है। जैसा कि यह w3schools लिंक पर इंगित करता है, सभी डोम तत्वों में 'शैली' संपत्ति होती है।

और वास्तव में, यहाँ मैं (इनलाइन) एक लेबल टैग के लिए 'शैली' संपत्ति की स्थापना कर रहा हूँ - और यह ठीक काम करता है:

<label for="itemImageId" style="color: gray" id="labelForImageUploadID">Item image</label> 

लेबल पाठ रंग पेज लोड पर ग्रे है पहर।

एक निश्चित स्थिति के तहत (उपयोगकर्ता ने संकेत दिया है कि वे अपलोड करने के लिए एक छवि का चयन करने के लिए तैयार हैं) - मुझे अपलोड को ऊपर से काले रंग के प्रारंभिक ग्रे टेक्स्ट रंग को बदलकर 'सक्षम' के रूप में दिखाना होगा।

क्या मुझे पता है कि मैं इस लेबल के टेक्स्ट रंग के लिए एक सीएसएस क्लास का उपयोग कर सकता हूं और उपरोक्त के सीएसएस वर्ग को गतिशील रूप से में 'className' प्रॉपर्टी का उपयोग कर सकता हूं? तुम शर्त लगाओ मैं करता हूं। आज रात हालांकि मैं इस डीओएम तत्व के पैर आग में रख रहा हूं। मेरे पास सिर्फ एक 'शैली' विशेषता है (टेक्स्ट रंग) बदलने के लिए और केवल के लिए कक्षा नहीं जोड़ना चाहता - जो मैं यहां कोशिश कर रहा हूं उसे दस्तावेज़ों के अनुसार काम करना चाहिए।

मैं जानना चाहता हूं कि मैं 'शैली' संपत्ति का उपयोग क्यों नहीं कर सकता क्योंकि डीओएम कहता है कि मैं कर सकता हूं - "प्राप्त करें" और "सेट" डीओएम तत्व की गुण।

यहाँ

मैं "सेट" मेरी की 'शैली' संपत्ति आईएनजी - यह कुछ नहीं करता है - लेबल पाठ ग्रे रहता है:

document.getElementById('labelForImageUploadID').style = "color: rgb(0,0,0)"; 

न ही यह काला करने के लिए ग्रे से रंग बदलने करता है :

document.getElementById('labelForImageUploadID').style = "color: black"; 

ऊपर कोड निष्पादित (जावास्क्रिप्ट में) के बाद लेबल पृष्ठ पर दिखाई पहले से ही है, और फार्म पर एक बटन के एक onclick घटना के जवाब में लेबल भी का एक हिस्सा है कि।

क्या डीओएम तत्व की 'शैली' संपत्ति को "सेट" करने की क्षमता में कोई बग है? http://www.w3schools.com/jsref/dom_obj_all.asp के अनुसार,

"HTMLElement Object 

    The following properties, and methods can be used on all HTML elements." 

     (other properties here.....) 
    "style -- Sets or returns the style attribute of an element" 
     (still other properties here......) 

तो क्यों मैं तत्व की 'शैली' संपत्ति तो मेरे कोड में ऊपर नहीं बदल सकते हैं?

उत्तर

8

2017 में इस उत्तर की समीक्षा करने पर, संपूर्ण शैली स्ट्रिंग को सेट करने का मूल उदाहरण सही तरीके से काम करता है। मुझे नहीं पता कि समस्या क्या थी, लेकिन नीचे दिए गए उदाहरण अभी भी मान्य दृष्टिकोण हैं।


जावास्क्रिप्ट के साथ एक शैली की स्थापना आम तौर पर निम्न स्वरूप इस प्रकार है:

document.getElementById("abc").style.[css property name in camel case] = "[value]"; 

तो jQuery का उपयोग कर, यह थोड़ा क्लीनर बन जाता है:

// find all elements with the tag name "bar" that are direct 
// descendants of an element with the class name "foo" 
$(".foo > BAR").css("color", "red"); 

// set multiple properties 
$(".foo > BAR").css({ color: "red", "background-color": "beige" }); 
+0

धन्यवाद टिम, यह किया गया है। यह सच है डब्ल्यू 3 यहां और वहां थोड़ा सा पासा है। मुझे आपकी मदद से सही तरीके से जवाब देने के लिए मेरे लेबल के टेक्स्ट रंग प्राप्त हुए हैं - आपकी अन्य जानकारी के लिए भी धन्यवाद। – wantTheBest

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