2014-07-10 1 views
7

मैं पुस्तक "jQuery पॉकेट संदर्भ" पढ़ रहा हूँ स्थापित करने के लिए jQuery attr() का उपयोग करता है ओ रेली, 2011 पेज 15 में, यह, "सीएसएस"

'उदाहरण के लिए कहा, बुला attr ("सीएसएस ", {पृष्ठभूमि रंग:" ग्रे "}) सीएसएस ({backgroundColor:" gray "} को कॉल करने जैसा ही है)। '

लेकिन मैं attr ("css", {}) काम नहीं कर सकता। मेरे परीक्षण कोड: http://jsfiddle.net/4UMN3/4/

$(function() { 
$("#btnChangeColor").click(function() { 
$("#spanText").attr("css", { backgroundColor: "gray" }); 

}); 

}); 

सीएसएस() विधि ठीक काम करता है, http://jsfiddle.net/4UMN3/5/

धन्यवाद

+4

कुछ भी नहीं है html में सीएसएस विशेषता के रूप में बात (है http://api.jquery.com/ attr /)। हो सकता है [पुस्तक में त्रुटि] (http://www.oreilly.com/catalog/errata.csp?ISBN = 0636920016182)। – Blazemonger

+8

यदि आपके पास '.css()' है तो आपको '.attr()' का उपयोग करने की आवश्यकता क्यों होगी? – j08691

+2

क्या यह O'Reilly की साइट पर [दूसरी पुष्टि त्रुटि] से संबंधित है (http://www.oreilly.com/catalog/errata.csp?isbn=0636920016182)? – Blazemonger

उत्तर

8

है बदलें:

$("#spanText").attr("css", { backgroundColor: "gray" }); 

$("#spanText").attr('style', 'background-color:gray'); 
2

मैं jQuery के .attr() केवल प्रभावित कर सकते हैं विशेषताओं का तत्व है लगता है। HTMLElements को "css" नामक एक विशेषता नहीं है (जिसका अर्थ है <div css="something"></div>)।

तो, सही उपयोग

$("#spanText").attr("style",{backgroundColor:"gray"}); 

होगा लेकिन इस आउटपुट

<span id="spanText" style="[object Object]">This is a test</span> 

एक उदाहरण वास्तव में कार्य करता है कि

$("#spanText").attr("style","background-color:gray;"); 
+0

'.css()' फ़ंक्शन ऑब्जेक्ट शाब्दिक वाक्यविन्यास को समझता है, '.attr()' विधि नहीं है। – Alnitak

+0

मैंने कभी कुछ अलग नहीं दावा किया। मैं बस दिखाना चाहता था कि दिखाया गया वाक्यविन्यास क्यों काम नहीं करता है। – SVSchmidt

+2

मैं सिर्फ किसी भी पाठक के लाभ के लिए टिप्पणी कर रहा था - आपके उत्तर की आलोचना नहीं। – Alnitak

3

शायद के साथ, यह

$("#spanText").attr('style', 'background-color:gray'); 

यह काम कर सकते हैं होना चाहिए था, लेकिन कुछ समस्याएं हैं:

  • यह बजाय style संपत्ति style बदलने के लिए पसंद किया जाता है विशेषता।
  • यह सभी पूर्व सेट इनलाइन शैलियों को प्रतिस्थापित करेगा।

फिर, अगर आप jQuery का उपयोग करें, बेहतर css विधि का उपयोग करें:

document.getElementById("spanText").style.backgroundColor = 'gray'; 
0

=> .css विधि को संशोधित करता है:

$("#spanText").css('background-color', 'gray'); 

लेकिन style संपत्ति वेनिला-js में उपयोगी है स्टाइल विशेषता "सीएसएस" नहीं है।

$().att('style' , 'backgroundColor : gray'); 

=> कोई ऐसे में [डॉक्स] इसके बारे में