2009-12-02 10 views
47

यदि मेरे पास उदाहरण के लिए एक div तत्व है और कक्षा 'प्रथम' को कई सीएसएस गुणों के साथ परिभाषित किया गया है। क्या मैं सीएसएस क्लास 'सेकेंड' असाइन कर सकता हूं जिसमें प्रत्येक प्रॉपर्टी को लाइन में प्रत्येक संपत्ति को लिखे बिना कुछ ही घटनाओं पर अलग-अलग गुणों को अलग-अलग परिभाषित किया गया है।jQuery बदलते सीएसएस वर्ग को

उत्तर

58
$(".first").addClass("second"); 

यदि आप इसे किसी ईवेंट पर जोड़ना चाहते हैं, तो आप भी आसानी से ऐसा कर सकते हैं। क्लिक करें घटना के साथ एक उदाहरण:

$(".first").click(function() { 
    $(this).addClass("second"); 
}); 
+1

+1। शायद आप उसे दूसरी कक्षा को जोड़ने और हटाने के लिए माउसओवर/माउसआउट संयोजन दिखा सकते हैं :) –

+0

माउसओवर/माउसआउट पर कक्षाओं को जोड़ने/हटाने के बजाय, होवर सीएसएस चयनकर्ता का उपयोग करने का प्रयास करें। उदाहरण: "पहला: होवर"। – WhyNotHugo

30

तुम इतनी तरह jQuery के साथ जोड़ सकते हैं और हटाने कक्षाएं:

$(".first").addClass("second") 
// remove a class 
$(".first").removeClass("second") 

जिस तरह से आप अपने मार्कअप में कई वर्गों सेट कर सकते हैं तुरंत एक खाली स्थान के

से अलग करके
<div class="second first"></div> 
87

हाँ, आसानी से।

$("#mydiv").attr("class", "second"); 
+0

धन्यवाद दोस्तों सभी उत्तरों बहुत उपयोगी हैं – eomeroff

+3

यह कक्षा संपत्ति को ओवरराइट करेगा, div से 'प्रथम' वर्ग को हटा देगा। मेरा मानना ​​है कि उपयोगकर्ता चाहते हैं कि div दोनों 'प्रथम' और 'दूसरी' कक्षाएं हों। उदाहरण के लिए – Annabelle

+0

कुछ घटनाओं पर क्लिक करें, मैं चाहता हूं कि div को अलग-अलग रूप से देखना चाहिए, जिस तरह से मुझे अन्य कक्षा की आवश्यकता है, मैं "प्राथमिक सेकोनफ" (जैसे डेफ ऊपर लिखा था) पर दो वर्गों से बचने के बजाय मैं प्राथमिकता से निपट सकता हूं। क्या मै?? एक और बात, $ ("# mydiv")। Attr ("class", "second"); क्या कोड की यह पंक्ति दोनों addClass और removeClass कर रही है ?? इसे $ ("पहला") लिखा जा सकता है। Attr ("class", "second"); ?? – eomeroff

3

यह बिल्कुल लक्ष्य पर नहीं हो सकता है क्योंकि मैं जो करना चाहता हूं उस पर पूरी तरह स्पष्ट नहीं हूं। हालांकि, यह मानते हुए कि आप किसी घटना के जवाब में एक अलग वर्ग को एक div को असाइन करना चाहते हैं, तो जवाब हाँ है, आप निश्चित रूप से jQuery के साथ ऐसा कर सकते हैं। मैं केवल एक jQuery शुरुआत कर रहा हूँ, लेकिन मैं का इस्तेमाल किया है मेरी कोड में निम्नलिखित:

$(document).ready(function() { 
    $("#someElementID").click(function() { // this is your event 
     $("#divID").addClass("second");  // here your adding the new class 
    )}; 
)}; 

आप द्वितीय श्रेणी के साथ प्रथम श्रेणी बदलने के लिए करना चाहता था, तो मेरा मानना ​​है कि आप removeClass पहले और उसके बाद addClass का प्रयोग करेंगे के रूप में मैंने किया था ऊपर। टॉगल क्लास भी एक लायक हो सकता है। उदाहरण के साथ, jQuery दस्तावेज़ों को इन प्रकार के परिवर्तनों के लिए अच्छी तरह से लिखा गया है।

कोई और मेरे पास एक बेहतर विकल्प है, लेकिन मुझे उम्मीद है कि इससे मदद मिलती है!

2

div जैसे HTML तत्व में एक से अधिक कक्षाएं हो सकती हैं। मान लें कि div को addClass विधि का उपयोग करके दो शैलियों को असाइन किया गया है। यदि स्टाइल 1 में 3 गुण हैं जैसे फ़ॉन्ट-आकार, वजन और रंग, और स्टाइल 2 में फ़ॉन्ट गुण, वजन, रंग और पृष्ठभूमि रंग जैसे 4 गुण हैं, परिणामी प्रभावी गुण सेट (शैली), मुझे लगता है, इसमें 4 गुण यानी संघ होंगे सभी शैली सेट के। सामान्य गुण, हमारे मामले में, रंग, फ़ॉन्ट आकार, वजन, नवीनतम मूल्यों के साथ एक अवसर होगा। यदि div को style1 को पहले और स्टाइल 2 सेकेंड असाइन किया गया है, तो सामान्य प्रॉपर्टीज स्टाइल 2 मानों द्वारा ओवरराइट की जाएगी।

इसके अलावा, मैं Using JQuery to Apply,Remove and Manage Styles पर एक पोस्ट में लिखा है, मुझे आशा है कि यह एक ईवेंट हैंडलर प्रदर्शन करने के लिए मदद से आप

सादर अवैस

0
$(document).ready(function() { 

      $("#divId").toggleClass('cssclassname'); // toggle class 
}); 

**OR** 

$(document).ready(function() { 
     $("#objectId").click(function() { // click or other event to change the div class 
       $("#divId").toggleClass("cssclassname");  // toggle class 
     )}; 
)}; 
संबंधित मुद्दे