सवाल जावास्क्रिप्ट के साथ एक तत्व वर्ग बदलें


मैं जवाब में एक HTML तत्व की कक्षा कैसे बदल सकता हूं onClick जावास्क्रिप्ट का उपयोग कर घटना?


2290
2017-10-12 20:06


मूल


"क्लास एट्रिब्यूट ज्यादातर स्टाइल शीट में कक्षा को इंगित करने के लिए उपयोग किया जाता है। हालांकि, इसे एक निर्दिष्ट वर्ग के साथ HTML तत्वों में परिवर्तन करने के लिए जावास्क्रिप्ट (HTML DOM के माध्यम से) द्वारा भी उपयोग किया जा सकता है।" -w3schools.com/tags/att_standard_class.asp - Triynko
element.setAttribute(name, value);  बदलने के name साथ में class। बदलने के value उद्धरण में संलग्न वर्ग के साथ जो भी नाम आपने दिया है, उसके साथ। यह मौजूदा वर्ग को हटाने और एक अलग जोड़ने की आवश्यकता से बचाता है। इस जेएसएफल्ड उदाहरण पूरा काम कोड दिखाता है। - Sandy Good
ऑनक्लिक के साथ HTML तत्व की श्रेणी बदलने के लिए इस कोड का उपयोग करें: <input type='button' onclick='addNewClass(this)' value='Create' />   और जावास्क्रिप्ट अनुभाग में: function addNewClass(elem){ elem.className="newClass"; } ऑनलाइन - Iman Bahrampour


जवाब:


कक्षाओं को बदलने के लिए आधुनिक एचटीएमएल 5 तकनीकें

आधुनिक ब्राउज़रों ने जोड़ा है classList जो लाइब्रेरी की आवश्यकता के बिना कक्षाओं में हेरफेर करना आसान बनाने के तरीकों को प्रदान करता है:

document.getElementById("MyElement").classList.add('MyClass');

document.getElementById("MyElement").classList.remove('MyClass');

if ( document.getElementById("MyElement").classList.contains('MyClass') )

document.getElementById("MyElement").classList.toggle('MyClass');

दुर्भाग्यवश, ये v10 से पहले इंटरनेट एक्सप्लोरर में काम नहीं करते हैं, हालांकि एक है परत आईई 8 और आईई 9 के लिए इसके लिए समर्थन जोड़ने के लिए, से उपलब्ध है यह पन्ना। हालांकि, यह अधिक से अधिक हो रहा है समर्थित

सरल क्रॉस ब्राउज़र समाधान

तत्व का चयन करने के लिए मानक जावास्क्रिप्ट तरीका का उपयोग कर रहा है document.getElementById("Id"), जो निम्नलिखित उदाहरणों का उपयोग करता है - आप निश्चित रूप से अन्य तरीकों से तत्व प्राप्त कर सकते हैं, और सही स्थिति में बस उपयोग कर सकते हैं this इसके बजाए - हालांकि, इस पर विस्तार से जवाब के दायरे से बाहर है।

तत्व के लिए सभी वर्गों को बदलने के लिए:

सभी मौजूदा वर्गों को एक या एक से अधिक नए वर्गों से प्रतिस्थापित करने के लिए, श्रेणी नाम विशेषता सेट करें:

document.getElementById("MyElement").className = "MyClass";

(आप कई कक्षाओं को लागू करने के लिए एक स्पेस-सीमांकित सूची का उपयोग कर सकते हैं।)

किसी तत्व को अतिरिक्त श्रेणी जोड़ने के लिए:

किसी तत्व को कक्षा जोड़ने के लिए, मौजूदा मानों को हटाने / प्रभावित किए बिना, एक स्पेस और नया क्लासनाम संलग्न करें, जैसे:

document.getElementById("MyElement").className += " MyClass";

किसी तत्व से कक्षा को निकालने के लिए:

किसी भी वर्ग को किसी तत्व को हटाने के लिए, अन्य संभावित वर्गों को प्रभावित किए बिना, एक साधारण रेगेक्स प्रतिस्थापन आवश्यक है:

document.getElementById("MyElement").className =
   document.getElementById("MyElement").className.replace
      ( /(?:^|\s)MyClass(?!\S)/g , '' )
/* Code wrapped for readability - above is all one statement */

इस रेगेक्स का एक स्पष्टीकरण निम्नानुसार है:

(?:^|\s) # Match the start of the string, or any single whitespace character

MyClass  # The literal text for the classname to remove

(?!\S)   # Negative lookahead to verify the above is the whole classname
         # Ensures there is no non-space character following
         # (i.e. must be end of string or a space)

g ध्वज प्रतिस्थापन को आवश्यकतानुसार दोहराने के लिए कहता है, यदि कक्षा का नाम कई बार जोड़ा गया है।

यह जांचने के लिए कि किसी तत्व को पहले से ही तत्व पर लागू किया गया है या नहीं:

एक वर्ग को हटाने के लिए ऊपर इस्तेमाल किया गया वही रेगेक्स भी एक चेक के रूप में उपयोग किया जा सकता है कि कोई विशेष वर्ग मौजूद है या नहीं:

if ( document.getElementById("MyElement").className.match(/(?:^|\s)MyClass(?!\S)/) )


घटनाओं पर क्लिक करने के लिए इन कार्यों को असाइन करना:

जबकि HTML ईवेंट विशेषताओं (जैसे कि) के अंदर सीधे जावास्क्रिप्ट लिखना संभव है onclick="this.className+=' MyClass'") यह अनुशंसित व्यवहार की सिफारिश नहीं है। विशेष रूप से बड़े अनुप्रयोगों पर, जावास्क्रिप्ट इंटरैक्शन तर्क से HTML मार्कअप को अलग करके अधिक रखरखाव कोड प्राप्त किया जाता है।

इसे प्राप्त करने का पहला चरण एक फ़ंक्शन बनाकर, और ऑनक्लिक विशेषता में फ़ंक्शन को कॉल करना है, उदाहरण के लिए:

<script type="text/javascript">
    function changeClass(){
        // Code examples from above
    }
</script>
...
<button onclick="changeClass()">My Button</button>

(इस कोड को स्क्रिप्ट टैग में रखना आवश्यक नहीं है, यह केवल उदाहरण की संक्षिप्तता के लिए है, और एक अलग फ़ाइल में जावास्क्रिप्ट सहित अधिक उपयुक्त हो सकता है।)

दूसरा चरण एचटीएमएल और जावास्क्रिप्ट में ऑनक्लिक घटना को स्थानांतरित करना है, उदाहरण के लिए addEventListener

<script type="text/javascript">
    function changeClass(){
        // Code examples from above
    }

    window.onload = function(){
        document.getElementById("MyElement").addEventListener( 'click', changeClass);
    }
</script>
...
<button id="MyElement">My Button</button>

(ध्यान दें कि window.onload भाग आवश्यक है ताकि उस फ़ंक्शन की सामग्री निष्पादित की जा सके बाद एचटीएमएल लोडिंग समाप्त हो गया है - इसके बिना, जावास्क्रिप्ट कोड कहलाता है जब MyElement मौजूद नहीं हो सकता है, तो वह लाइन असफल हो जाएगी।)


जावास्क्रिप्ट फ्रेमवर्क और पुस्तकालय

उपर्युक्त कोड मानक जावास्क्रिप्ट में है, हालांकि सामान्य कार्यों को सरल बनाने के लिए ढांचे या लाइब्रेरी का उपयोग करना आम बात है, साथ ही निश्चित बग और किनारे के मामलों से लाभ जो आप अपना कोड लिखते समय नहीं सोच सकते हैं।

जबकि कुछ लोग इसे कक्षा बदलने के लिए ~ 50 केबी ढांचे को जोड़ने के लिए अधिक मात्रा में विचार करते हैं, यदि आप जावास्क्रिप्ट काम की पर्याप्त मात्रा में काम कर रहे हैं, या असामान्य क्रॉस-ब्राउज़र व्यवहार वाले किसी भी चीज को देखते हुए, यह विचार करने योग्य है।

(बहुत मोटे तौर पर, लाइब्रेरी एक विशिष्ट कार्य के लिए डिज़ाइन किए गए टूल का एक सेट है, जबकि एक ढांचे में आमतौर पर एकाधिक पुस्तकालय होते हैं और कर्तव्यों का पूरा सेट करते हैं।)

उपर्युक्त उदाहरणों का उपयोग करके नीचे पुन: उत्पन्न किया गया है jQuery, शायद सबसे अधिक इस्तेमाल की जाने वाली जावास्क्रिप्ट लाइब्रेरी (हालांकि अन्य लोग भी जांच के लायक हैं)।

(ध्यान दें कि $ यहां jQuery ऑब्जेक्ट है।)

JQuery के साथ बदलती कक्षाएं:

$('#MyElement').addClass('MyClass');

$('#MyElement').removeClass('MyClass');

if ( $('#MyElement').hasClass('MyClass') )

इसके अलावा, jQuery एक वर्ग जोड़ने के लिए शॉर्टकट प्रदान करता है अगर यह लागू नहीं होता है, या उस वर्ग को हटा देता है जो करता है:

$('#MyElement').toggleClass('MyClass');


JQuery के साथ एक क्लिक ईवेंट में फ़ंक्शन असाइन करना:

$('#MyElement').click(changeClass);

या, आईडी की आवश्यकता के बिना:

$(':button:contains(My Button)').click(changeClass);



3302
2017-10-12 20:45



महान जवाब पीटर। एक सवाल ... यह क्यों है बेहतर जावास्क्रिप्ट से JQuery के साथ करने के लिए? JQuery बहुत अच्छा है, लेकिन अगर आपको ऐसा करने की ज़रूरत है - जावास्क्रिप्ट की कुछ पंक्तियों के बजाय पूरे JQuery लाइबेरे सहित क्या उचित है? - mattstuehler
@mattstuehler 1) वाक्यांश "बेहतर अभी तक एक्स" अक्सर का मतलब है "बेहतर अभी तक (आप कर सकते हैं) एक्स"। 2) इस मामले के दिल तक पहुंचने के लिए, jQuery को डीओएम तक पहुंचने / छेड़छाड़ करने में सहायता के लिए डिज़ाइन किया गया है, और अक्सर आपको जगह पर ऐसा करने के बाद इस तरह की चीज करने की आवश्यकता होती है। - Barry
इस समाधान के साथ एक बग: जब आप अपने बटन पर कई बार क्लिक करते हैं, तो यह देखने के बजाय कि यह पहले से मौजूद है या नहीं, यह कई बार तत्व में "MyClass" की कक्षा को जोड़ देगा। इस प्रकार आप एचटीएमएल क्लास एट्रिब्यूट के साथ ऐसा कुछ देख सकते हैं: class="button MyClass MyClass MyClass" - Web_Designer
यदि आप कक्षा 'myClass' को निकालने का प्रयास कर रहे हैं और आपके पास कक्षा को हटाने के लिए उपरोक्त दिया गया रेगिक्स 'क्लास' उपसर्ग- myClass 'है, तो आपको अपने क्लासनाम में' उपसर्ग 'के साथ छोड़ देगा: ओ - jinglesthula
वाह, तीन साल और 183 अपवॉट्स और अब तक कोई भी नहीं देखा। धन्यवाद jinglesthula, मैंने regex को सही किया है, इसलिए यह वर्ग नामों के हिस्सों को गलत तरीके से हटा नहीं देगा। // मुझे लगता है कि यह एक अच्छा उदाहरण है कि क्यों एक फ्रेमवर्क (जैसे jQuery) का उपयोग करने लायक है - इस तरह की बग पकड़े जाते हैं और जल्द ही तय किए जाते हैं, और सामान्य कोड में बदलाव की आवश्यकता नहीं होती है। - Peter Boughton


आप बस यह भी कर सकते हैं:

document.getElementById ( 'आईडी') classList.add ( 'क्लास')।
document.getElementById ( 'आईडी') classList.remove ( 'क्लास')।

और एक वर्ग को टॉगल करने के लिए (अगर मौजूद है तो इसे हटाएं):

। Document.getElementById ( 'आईडी') classList.toggle ( 'वर्ग');

380
2017-08-05 17:44



मेरा मानना ​​है कि यह एचटीएमएल 5 निर्भर है। - John
आपको एली ग्रे की आवश्यकता होगी classList शिम। - ELLIOTTCABLE
यह ध्यान देने योग्य लायक 8 से कम आईई संस्करणों में काम नहीं करता है .. - Lloyd
मोज़िला डेवलपर नेटवर्क कहता है कि यह 10 से कम इंटरनेट एक्सप्लोरर में, मूल रूप से काम नहीं करता है, मुझे अपने परीक्षण में, सही होने का बयान मिलता है। जाहिर है, द एली ग्रे शिम इंटरनेट एक्सप्लोरर 8-9 के लिए आवश्यक है। दुर्भाग्य से, मैं इसे अपनी साइट पर नहीं ढूंढ पाया (यहां तक ​​कि खोज के साथ)। शिम मोज़िला लिंक पर उपलब्ध है। - doubleJ
एटीओ "क्लासलिस्ट" आईई 10 + में आंशिक समर्थन है; ओपेरा मिनी के लिए कोई समर्थन नहीं; शेष मानक ब्राउज़र में पूर्ण समर्थन: caniuse.com/#search=classlist - Nick Humphrey


मेरी पुरानी परियोजनाओं में से एक जिसने jQuery का उपयोग नहीं किया, मैंने तत्व को कक्षा में जोड़ने, हटाने और जांचने के लिए निम्न कार्य किए:

function hasClass(ele, cls) {
    return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}
function addClass(ele, cls) {
    if (!hasClass(ele, cls)) ele.className += " " + cls;
}
function removeClass(ele, cls) {
    if (hasClass(ele, cls)) {
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
        ele.className = ele.className.replace(reg, ' ');
    }
}

तो, उदाहरण के लिए, यदि मैं कुछ वर्ग को बटन जोड़ने के लिए क्लिक करना चाहता हूं तो मैं इसका उपयोग कर सकता हूं:

<script type="text/javascript">
    function changeClass(btn, cls) {
        if(!hasClass(btn, cls)) {
            addClass(btn, cls);
        }
    }
</script>
...
<button onclick="changeClass(this, "someClass")">My Button</button>

अब तक सुनिश्चित करें कि यह jQuery का उपयोग करना बेहतर होगा।


98
2018-05-28 07:32



यह बहुत अच्छा है जब आपका क्लाइंट आपको jQuery का उपयोग करने नहीं देता है। (क्योंकि आप लगभग अपनी लाइब्रेरी का निर्माण करते हैं।) - Mike
@ माइक यदि क्लाइंट आपको jQuery का उपयोग करने नहीं देता है, तो क्या आप केवल अपनी लाइब्रेरी में आवश्यक सुविधाओं को पुनर्निर्माण नहीं कर सकते हैं? - kfrncs
@kfrncs क्योंकि मुझे आम तौर पर उस ढांचे की बड़ी आवश्यकता नहीं होती है। प्रोजेक्ट के लिए मैं सोच रहा था, केवल आवश्यक कार्यों में 3 वर्गनाम (है, जोड़ना, निकालना) फ़ंक्शंस और कुकी (है, जोड़ना, निकालना) फ़ंक्शंस थे। बाकी सब कुछ या तो कस्टम था, या मूल रूप से अच्छी तरह से समर्थित था। इसलिए टिप्पणियों सहित, मिनीफाईंग से पहले सब कुछ एक साथ 150 लाइनें थी। - Mike
दोस्त, इसका 4 बजे और आपको बहुत धन्यवाद। वेनिला जेएस हम अपने प्रोजेक्ट पर उपयोग कर रहे हैं और यह एक जीवन बचतकर्ता था। - LessQuesar
यह इसके लिए मेरा पसंदीदा समाधान है। मैं इसे हर जगह इस्तेमाल करता हूं। मेरा मानना ​​है कि कक्षाओं को जोड़ने और हटाने के लिए यह सबसे शानदार तरीका है जब आपकी परियोजना में पहले से ही ऐसा करने का दूसरा तरीका नहीं है। - WebWanderer


आप उपयोग कर सकते हैं node.className इस तरह:

document.getElementById('foo').className = 'bar';

यह आईई 5.5 में काम करना चाहिए और इसके अनुसार PPK


64
2017-10-12 20:33



यह ऑब्जेक्ट पर किसी और सभी अन्य वर्गों को ओवरराइट करेगा ... इसलिए यह इतना आसान नहीं है। - Eric Sebasta


वाह, हैरान है कि यहां इतने सारे ओवरकिल उत्तर हैं ...

<div class="firstClass" onclick="this.className='secondClass'">

46
2018-01-05 19:14



हाँ, लेकिन अविभाज्य जावास्क्रिप्ट बेहतर अभ्यास है .. - Lloyd
मैं कहूंगा कि अविभाज्य जावास्क्रिप्ट उदाहरण कोड लिखने के लिए भयानक अभ्यास है ... - Gabe
मैं असहमत हूं, क्योंकि मुझे लगता है कि उदाहरण कोड को एक अच्छा उदाहरण निर्धारित करना चाहिए। - thomasrutter
एक अच्छा उदाहरण एक ही समय में कल्पना को निर्देशित और चमकाना चाहिए। इसे विचारों को प्रतिस्थापित नहीं करना चाहिए, बल्कि इसे प्रेरित करना चाहिए। - Anthony Rutledge
अन्य उत्तर अधिक नहीं हैं, वे तत्वों पर मौजूदा कक्षाएं भी रखते हैं। - gcampbell


शुद्ध जावास्क्रिप्ट कोड का उपयोग करना:

function hasClass(ele, cls) {
    return ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}

function addClass(ele, cls) {
    if (!this.hasClass(ele, cls)) ele.className += " " + cls;
}

function removeClass(ele, cls) {
    if (hasClass(ele, cls)) {
        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
        ele.className = ele.className.replace(reg, ' ');
    }
}

function replaceClass(ele, oldClass, newClass){
    if(hasClass(ele, oldClass)){
        removeClass(ele, oldClass);
        addClass(ele, newClass);
    }
    return;
}

function toggleClass(ele, cls1, cls2){
    if(hasClass(ele, cls1)){
        replaceClass(ele, cls1, cls2);
    }else if(hasClass(ele, cls2)){
        replaceClass(ele, cls2, cls1);
    }else{
        addClass(ele, cls1);
    }
}

40
2017-09-20 15:26



जैसे यहाँ है: snipplr.com/view/3561/addclass-removeclass-hasclass - Jaider


यह मेरे लिए काम कर रहा है:

function setCSS(eleID) {
    var currTabElem = document.getElementById(eleID);

    currTabElem.setAttribute("class", "some_class_name");
    currTabElem.setAttribute("className", "some_class_name");
}

27
2017-12-08 09:36



उत्कृष्ट जवाब! बस जोड़ने के लिए छोड़ दिया: वर्ग तत्वों के समूह के लिए शैली निर्दिष्ट करने के लिए चयनकर्ता के लिए प्रत्येक सीएसएस वर्ग नाम के लिए सेट करें - Roman Polen.
यह मेरे लिए एफएफ पर काम करता है, लेकिन जब मैंने el.className = "newStyle" का उपयोग करने का प्रयास किया है; यह काम नहीं किया, क्यों? - Lukasz 'Severiaan' Grela
आप उपयोग कर सकते हैं el.setAttribute('class', newClass) या और अच्छा el.className = newClass। लेकिन नहीं el.setAttribute('className', newClass)। - Oriol


साथ ही कक्षाओं को जोड़ने, निकालने, टॉगल करने और जांचने के तरीकों को जोड़ने के लिए आप HTMLElement ऑब्जेक्ट का विस्तार कर सकते हैं (सार):

HTMLElement = typeof(HTMLElement) != 'undefiend' ? HTMLElement : Element;

HTMLElement.prototype.addClass = function(string) {
  if (!(string instanceof Array)) {
    string = string.split(' ');
  }
  for(var i = 0, len = string.length; i < len; ++i) {
    if (string[i] && !new RegExp('(\\s+|^)' + string[i] + '(\\s+|$)').test(this.className)) {
      this.className = this.className.trim() + ' ' + string[i];
    }
  }
}

HTMLElement.prototype.removeClass = function(string) {
  if (!(string instanceof Array)) {
    string = string.split(' ');
  }
  for(var i = 0, len = string.length; i < len; ++i) {
    this.className = this.className.replace(new RegExp('(\\s+|^)' + string[i] + '(\\s+|$)'), ' ').trim();
  }
}

HTMLElement.prototype.toggleClass = function(string) {
  if (string) {
    if (new RegExp('(\\s+|^)' + string + '(\\s+|$)').test(this.className)) {
      this.className = this.className.replace(new RegExp('(\\s+|^)' + string + '(\\s+|$)'), ' ').trim();
    } else {
      this.className = this.className.trim() + ' ' + string;
    }
  }
}

HTMLElement.prototype.hasClass = function(string) {
  return string && new RegExp('(\\s+|^)' + string + '(\\s+|$)').test(this.className);
}

और फिर बस इस तरह उपयोग करें (क्लिक पर कक्षा को जोड़ या हटा देगा):

document.getElementById('yourElementId').onclick = function() {
  this.toggleClass('active');
}

यहाँ है डेमो


16
2018-04-11 10:13



यह एक छोटा verbose है ... यहाँ एक बहुत संक्षिप्त समाधान है ...jsfiddle.net/jdniki/UaT3P - zero_cool
क्षमा करें @ जैक्सन_Sandland लेकिन आप पूरी तरह से उस बिंदु को याद कर चुके हैं, जो कि jQuery का उपयोग नहीं करना है। - moka


Google Closures, किसी अन्य लोकप्रिय ढांचे से जानकारी जोड़ने के लिए, उन्हें देखें डोम / कक्षाएं वर्ग:

goog.dom.classes.add(element, var_args)

goog.dom.classes.addRemove(element, classesToRemove, classesToAdd)

goog.dom.classes.remove(element, var_args)

तत्व का चयन करने के लिए एक विकल्प का उपयोग कर रहा है goog.dom.query एक CSS3 चयनकर्ता के साथ:

var myElement = goog.dom.query("#MyElement")[0];

15
2017-11-26 21:04





पिछले regexes पर कुछ मामूली नोट्स और tweaks:

यदि कक्षा सूची में कक्षा का नाम एक से अधिक बार होता है तो आप इसे वैश्विक स्तर पर करना चाहेंगे। और, आप शायद कक्षा सूची के सिरों से रिक्त स्थान को पट्टी करना चाहते हैं और रिक्त स्थान चलाने से बचने के लिए एकाधिक स्थान को एक स्थान पर परिवर्तित करना चाहते हैं। इन चीजों में से कोई भी समस्या नहीं होनी चाहिए यदि कक्षा के नाम से डूबने वाला एकमात्र कोड नीचे रेगेक्स का उपयोग करता है और इसे जोड़ने से पहले नाम हटा देता है। परंतु। खैर, कौन जानता है कि वर्ग नाम सूची के साथ कौन डूब रहा हो सकता है।

यह रेगेक्स मामला असंवेदनशील है ताकि क्लास नामों में किसी भी ब्राउज़र पर कोड का उपयोग करने से पहले कक्षा के नामों में बग दिखाई दे सकें जो क्लास नामों में मामले की परवाह नहीं करता है।

var s = "testing   one   four  one  two";
var cls = "one";
var rg          = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", 'ig');
alert("[" + s.replace(rg, ' ') + "]");
var cls = "test";
var rg          = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", 'ig');
alert("[" + s.replace(rg, ' ') + "]");
var cls = "testing";
var rg          = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", 'ig');
alert("[" + s.replace(rg, ' ') + "]");
var cls = "tWo";
var rg          = new RegExp("(^|\\s+)" + cls + "(\\s+|$)", 'ig');
alert("[" + s.replace(rg, ' ') + "]");

13
2018-05-02 04:59





जावास्क्रिप्ट के साथ एक तत्व की सीएसएस कक्षा बदलें ASP.NET:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        lbSave.Attributes.Add("onmouseover", "this.className = 'LinkButtonStyle1'")
        lbSave.Attributes.Add("onmouseout", "this.className = 'LinkButtonStyle'")
        lbCancel.Attributes.Add("onmouseover", "this.className = 'LinkButtonStyle1'")
        lbCancel.Attributes.Add("onmouseout", "this.className = 'LinkButtonStyle'")
    End If
End Sub

12
2018-05-28 07:19



मुझे पता था कि एएसपी.नेट के साथ काम करने से मुझे नफरत है। - iandisme