2009-08-16 11 views
26

मैं jQuery के साथ एक बॉडी टैग में कक्षा जोड़ना चाहता हूं।शरीर टैग में कक्षा कैसे जोड़ें?

उदाहरण के लिए यदि यूआरएल http://www.mywebsite.com/about_us.asp है, मैं पहले पांच पत्र जोड़ने के शरीर टैग करने के लिए इस मामले के बारे में 'में, हैं:

<body class="about"> 

मैं ऐसा कैसे कर सकता है?

उत्तर

39

यह करना चाहिए:

var newClass = window.location.href; 
newClass = newClass.substring(newClass.lastIndexOf('/')+1, 5); 
$('body').addClass(newClass); 

पूरी "पांच अक्षरों" चीज थोड़ा चिंताजनक है; उस तरह का मनमाना कटऑफ आमतौर पर एक लाल झंडा होता है। मैं एक जब तक सब कुछ _ या पकड़ने की सलाह देते हैं:।

newClass = newClass.match(/\/[^\/]+(_|\.)[^\/]+$/); 

यही पैटर्न निम्नलिखित उपज चाहिए:

  • ../about_us.html: के बारे में
  • ../something.html: कुछ
  • ./has_two_underscores.html: है
+6

$ ('body') से अधिक प्रभावी $ (document.body) है, चयनकर्ता प्रक्रिया से बचाता है। Http://jsperf.com/jquery-body-vs-document-body- चयनकर्ता (नोट: दिए गए आंकड़ों में 'उच्च बेहतर है') –

+0

$ (document.body) jQuery 1.9.0 के साथ भी काम करता है (जबकि $ ("बॉडी") काम नहीं करता है (क्रोम में परीक्षण))। –

+0

ओह धन्यवाद, मैं ऐसा करने की कोशिश कर रहा था और यह काम नहीं कर रहा था लेकिन आपने मुझे बचाया :) – Jerome

-3

कुछ इस तरह काम कर सकते हैं:

$("body").attr("class", "about"); 

यह jQuery के attr() शरीर के लिए 'के बारे में' वर्ग जोड़ने के लिए उपयोग करता है।

+0

यह शरीर को कक्षा जोड़ने के लिए ठीक काम करता है। सिर्फ सवाल का जवाब नहीं दिया। – iCode

-1

ठीक है, आप document.location चाहते हैं। इस पर स्ट्रिंग परिवर्तन के कुछ प्रकार है और फिर

$(body).addClass(foo); 

मैं जानता हूँ कि यह पूरा जवाब नहीं है, लेकिन मैं तुम्हें बाकी काम कर सकते हैं मान (जब तक jQuery एक तरह से आप के लिए है कि काम से बचने के लिए किया है):)

1

आप का उपयोग यूआरएल के उस भाग को निकाल सकते हैं एक सरल regular expression:

var url = location.href; 
var className = url.match(/\w+\/(\w+)_/)[1]; 
$('body').addClass(className); 
-4

मैं एक ही समस्या थी,

<body id="body"> 

शरीर के लिए एक आईडी टैग जोड़ें:

$('#body').attr('class',json.class); // My class comes from Ajax/JSON, but change it to whatever you require. 

फिर स्विच करें आईडी का उपयोग कर शरीर के लिए कक्षा। इसका परीक्षण Chrome, इंटरनेट   एक्सप्लोरर, और Safari में किया गया है।

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