Wednesday 15 May 2013

jquery remove multiple variable classes -


मेरे पास निम्न DOM तत्व हैं:

  & lt; div id = "container" & gt ; & Lt; ul class = "ब्लॉक-ग्रिड तीन-अप" & gt; & Lt; li & gt; एक & lt; / li & gt; & Lt; li & gt; दो & lt; / li & gt; & Lt; li & gt; तीन & lt; / li & gt; & Lt; li & gt; चार & lt; / li & gt; & Lt; li & gt; पांच & lt; / li & gt; & Lt; li & gt; छह & lt; / li & gt; & Lt; / ul & gt; & Lt; / div & gt;   

मैं क्या चाहता हूँ कि उल के लिए एक क्लास होना चाहिए जो बताता है कि ली के ऊपर क्या लिखा गया है। अब तक, मेरे पास:

  $ ('# container li')। हॉवर (फ़ंक्शन () {i = $ (this) .index () + 1; // को निकालने के लिए फ़ंक्शन की ज़रूरत है सभी वर्ग जो n- से शुरू होते हैं- $ $ ('# कंटेनर उल')। AddClass ('n -' + i); $ (यह)। AddClass ('सक्रिय');}, फ़ंक्शन () {// की जरूरत है फ़ंक्शन उन सभी वर्गों को हटा दें जो n- यहां $ (this) से शुरू होते हैं .removeClass ('सक्रिय');});   

मुझे इसके लिए सभी वर्गों को निकालने का एक तरीका पता होना चाहिए- n के साथ शुरू करें- जैसा कि कोड अब लिखा है, यह सिर्फ जोड़ रहा है और कक्षाओं को जोड़ता है। मैं सिर्फ अन्य सभी वर्गों को नहीं हटा सकता क्योंकि वहां अतिरिक्त कक्षाएं हैं जिनके लिए संरचनात्मक कारणों की आवश्यकता है I और मुझे पता है कि removeClasses में वाइल्डकार्ड का उपयोग करने का कोई तरीका नहीं है क्या कोई नियमित अभिव्यक्ति है जो मैं यहां इस्तेमाल कर सकता हूं?

प्रश्न का उत्तर देने के लिए, और बस मज़े के लिए , यहां एक ऐसा प्लगइन है जो क्लास को हटाता है, जो कि वे इसके साथ शुरू करते हैं:

  $। Fn.removeClassStartsWith = function (param) {return.Each (function () {var classes = this.className .split (/ \ s + / g), newclasses = []; $ .each (वर्ग, फ़ंक्शन (_, क्लास) {if ($ .tim (klass) .indexOf (param)! == 0) newclasses.push ( $ .trim (klass));}); this.className = newclasses.join ('');}); }   

इस रूप में कॉल करने के लिए:

  $ ('तत्व')। RemoveClassStartsWith ('n-');   



No comments:

Post a Comment