আমি কীভাবে কোনও প্রদত্ত উপাদানগুলিতে ক্লাস যুক্ত করব?


1186

আমার একটি উপাদান রয়েছে যার ইতিমধ্যে একটি ক্লাস রয়েছে:

<div class="someclass">
    <img ... id="image1" name="image1" />
</div>

এখন আমি একটি জাভাস্ক্রিপ্ট ফাংশন তৈরি করতে চাই যা একটি ক্লাস যুক্ত করবে div(প্রতিস্থাপন নয়, তবে যুক্ত করবে)।

আমি এটা কিভাবে করবো?


8
এই থ্রেডটি ২০২০ বা তার পরে পড়ার জন্য, পুরাতন ক্লাসনেম পদ্ধতিটি এড়িয়ে যান এবং element.classList.add("my-class")পরিবর্তে ব্যবহার করুন।
পিকমন্দর

উত্তর:


1917

আপনি যদি কেবল আধুনিক ব্রাউজারগুলিকে লক্ষ্য করে থাকেন:

ক্লাস যুক্ত করতে এলিমেন্ট.classList.add ব্যবহার করুন:

element.classList.add("my-class");

এবং এলিমেন্ট.ক্লাসলিস্ট.একটি শ্রেণি অপসারণ করতে সরান:

element.classList.remove("my-class");

আপনার যদি ইন্টারনেট এক্সপ্লোরার 9 বা তার চেয়ে কম সমর্থন করে প্রয়োজন:

classNameউপাদানটির সম্পত্তিতে আপনার নতুন শ্রেণীর নাম যুক্ত করুন । প্রথমে idউপাদানটিতে একটি রাখুন যাতে আপনি সহজেই একটি রেফারেন্স পেতে পারেন।

<div id="div1" class="someclass">
    <img ... id="image1" name="image1" />
</div>

তারপর

var d = document.getElementById("div1");
d.className += " otherclass";

আগে স্থান নোট করুন otherclass। স্থানটি অন্তর্ভুক্ত করা গুরুত্বপূর্ণ, অন্যথায় এটি শ্রেণিকালিকার তালিকায় আসার আগে উপস্থিত শ্রেণিগুলির সাথে আপস করে।

এমডিএন এও এলিমেন্ট.ক্লাসনাম দেখুন ।


26
পুরো পৃষ্ঠার একমাত্র কাজ যদি জাভাস্ক্রিপ্ট দিয়ে করা দরকার তবে এই শ্রেণীর নাম সংযোজন, তবে হ্যাঁ। তবে আমি এটি পৃষ্ঠার একমাত্র গতিশীল অংশ হিসাবে দেখতে পাচ্ছি না। একটি লাইব্রেরি অন্য সব কিছুতেও সহায়তা করবে। 30-50kb এ jQuery আলোচনা করার পক্ষে কমই হিট।
rfunduk

167
"একটি লাইব্রেরি অন্য সব
কিছুতেও

19
একটি ভাষা ক্লাসের সাথে একটি ডিওএম উপাদানগুলিতে একটি শ্রেণি যুক্ত করার কী আছে? ডকুমেন্ট.সেটমেন্টমেন্টবাইআইডি ('ডিভ 1')। ক্লাসনেম যেমন লাইব্রেরি সম্পর্কিত সমস্যা তেমনই jQuery ব্যবহার করার মতো। প্রশ্নটি ছিল "আমি কীভাবে এটি করতে পারি", পুরোপুরি পরীক্ষিত লাইব্রেরি হ'ল বোধগম্য উত্তর।
rfunduk

6
@ থেন্ডুকস: আমি নিশ্চিত যে আপনি এটি জাভাস্ক্রিপ্ট জানেন! == jQuery। এটি একটি ভাল বিষয় যে এই প্রশ্নের উত্তরে গ্রন্থাগার এবং অ লাইব্রেরি সমাধান অন্তর্ভুক্ত রয়েছে কারণ জিনিসগুলি কীভাবে কেবল এটি সম্পাদন করার সহজতম উপায় নয় তা কীভাবে কাজ করে তা জানা গুরুত্বপূর্ণ । আপনি এই প্রশ্নটি জাভাস্ক্রিপ্ট ট্যাগ করা লক্ষ্য করতে পারেন
meouw

2
@ মিউ: আমি আপনার সাথে একমত jQuery জাভাস্ক্রিপ্টে লেখা হয়েছে , তবে আমি বজায় রেখেছি যে ওপিকে উল্লেখ করা একটি লাইব্রেরি একটি ভাল ধারণা '[তার] গলায় একটি কাঠামো চাপানো' নয়। এখানেই শেষ.
rfunduk

1350

কোনও কাঠামো ছাড়াই এটি করার সহজ উপায় হ'ল এলিমেন্ট.ক্লাসলিস্ট.এডিডি পদ্ধতিটি ব্যবহার করা ।

var element = document.getElementById("div1");
element.classList.add("otherclass");

সম্পাদনা করুন: এবং আপনি যদি কোনও উপাদান থেকে শ্রেণি অপসারণ করতে চান -

element.classList.remove("otherclass");

আমি কোনও খালি জায়গা এবং নকল এন্ট্রি নিজেকে পরিচালনা করে না document.classNameযাওয়াকে পছন্দ করি (যা পদ্ধতির ব্যবহার করার সময় প্রয়োজনীয়)। ব্রাউজারের কিছু সীমাবদ্ধতা রয়েছে তবে পলিফিল ব্যবহার করে আপনি তাদের চারপাশে কাজ করতে পারেন ।


67
এটা লজ্জাজনক যে এটি আইই 10.0 এর আগে সমর্থিত নয় কারণ এটি একটি দুর্দান্ত বৈশিষ্ট্য এবং আমি যে সমস্যার সাথে প্রায়শই আসি তার সহজ সমাধান।
ম্রিচি

12
ক্লাসলিস্টের জন্য একটি পলিফিল উপলব্ধ।
wcandillon



5
@ সিলভারআরঙ্গভী স্পেস পদ্ধতির আরও একটি ঝুঁকি হ'ল অন্য কিছু বিকাশকারী সম্ভবত এটি জরুরী জানেন না এবং জিনিসগুলি পরিষ্কার করার জন্য এটি অপসারণ করতে পারেন।
akauppi

178

আপনার টার্গেট এলিমেন্টটি "ডি" সন্ধান করুন তবে আপনি চান এবং তারপরে:

d.className += ' additionalClass'; //note the space

আপনি এটিকে প্রাক-অস্তিত্ব পরীক্ষা করতে এবং স্থানের প্রয়োজনীয়তা ইত্যাদি যাচাই করার জন্য চালক পদ্ধতিতে গুটিয়ে রাখতে পারেন ..


এবং এই পদ্ধতি ব্যবহার করে অপসারণ করতে?
ডেথগ্রিপ

3
@ ডিথগ্রিপ ক্লাসটিকে কেবলমাত্র একক সংজ্ঞায়িত নাম d.className = 'originalClass' এ সেট করে;
টেকচি

@ দ্য টেকি - আপনার যদি একাধিক শ্রেণি রাখার দরকার হয় (যা এই দিনগুলিতে অনেক কিছু ঘটে) তবে এটি কার্যকর হবে না।
মার্ক স্কুলথিস

1
পুরানো ফ্যাশন পদ্ধতিতে, splitসাদা স্থানের শ্রেণিকাম , অপসারণকারী অ্যারে থেকে আপনি যা চান না তা মুছে ফেলুন, তারপরে joinআবার অ্যারে ... বা ব্যবহার করুন element.classList.remove
স্টিজন ডি উইট

131

ক্লাস যুক্ত করুন

  • সামঞ্জস্যপূর্ণ ক্রস

    নিম্নলিখিত উদাহরণে আমরা যোগ classnameকরতে <body>উপাদান। এটি আইই -8 সামঞ্জস্যপূর্ণ।

    var a = document.body;
    a.classList ? a.classList.add('classname') : a.className += ' classname';

    এটি নিম্নলিখিতগুলির জন্য শর্টহ্যান্ড ..

    var a = document.body;
    if (a.classList) {
        a.classList.add('wait');
    } else {
        a.className += ' wait';
    }

  • কর্মক্ষমতা

    যদি ক্রস-সামঞ্জস্যের উপর পারফরম্যান্সের সাথে আপনার আরও উদ্বেগ থাকে তবে আপনি এটি নীচে সংক্ষিপ্ত করতে পারেন যা 4% দ্রুত।

    var z = document.body;
    document.body.classList.add('wait');

  • সুবিধা

    বিকল্পভাবে আপনি jQuery ব্যবহার করতে পারেন তবে ফলাফলের পারফরম্যান্স উল্লেখযোগ্যভাবে ধীর। Jscreen অনুযায়ী 94% ধীর

    $('body').addClass('wait');


ক্লাস অপসারণ করা হচ্ছে

  • কর্মক্ষমতা

    পারফরম্যান্সের সাথে যদি আপনার সংশ্লিষ্ট থাকেন তবে কোনও ক্লাস অপসারণের জন্য বেছে বেছে jQuery ব্যবহার করা সেরা পদ্ধতি

    var a = document.body, c = ' classname';
    $(a).removeClass(c);

  • JQuery ছাড়া এটি 32% ধীর

    var a = document.body, c = ' classname';
    a.className = a.className.replace( c, '' );
    a.className = a.className + c;

তথ্যসূত্র

  1. jscreen পরীক্ষার কেস: একটি ক্লাস যুক্ত করা হচ্ছে
  2. jscreen টেস্ট কেস: একটি ক্লাস সরানো

প্রোটোটাইপ ব্যবহার করা

Element("document.body").ClassNames.add("classname")
Element("document.body").ClassNames.remove("classname")
Element("document.body").ClassNames.set("classname")

YUI ব্যবহার করে

YAHOO.util.Dom.hasClass(document.body,"classname")
YAHOO.util.Dom.addClass(document.body,"classname")
YAHOO.util.Dom.removeClass(document.body,"classname")

বাহ ধন্যবাদ :) শর্টহ্যান্ড সংস্করণে ( a.classList ? ...) সাধারণ ( if (a.classList) { ....) এর তুলনায় কোনও গতির পার্থক্য থাকবে ?
উইল্ফ

5
ওলসো আছে classList.remove()। আপনি এটি ব্যবহার করেননি কেন? এটা অনেক দ্রুত jQuery এর চেয়ে এর jsperf.com/remove-class-vanilla-vs-jquery
ফেজে Vrasta

@ ফেজব্রাস্টা ক্লাসলিস্ট আইই 10 এর আগে সমর্থিত নয়, যা এখনও বাজারের একটি শালীন শেয়ার (নেটমার্কেটের ডট কম এ + 13%) রয়েছে।
আদম

6
@ অ্যাডাম তিনি classListক্লাস অপসারণ বাদে সব কিছুর জন্য ব্যবহার করেছিলেন, এই কারণেই আমি এটি জিজ্ঞাসা করছি।
ফেজে ভ্রাস্টা

@ ফেজব্রাস্টা আন্ডার ক্রস সামঞ্জস্যপূর্ণ আমি। এডিডি () ব্যবহার করেছি তবে এটি উপলব্ধ কিনা তা পরীক্ষা করেই হেনস ক্রস সামঞ্জস্যপূর্ণ । অপসারণের জন্য আমি নিজেকে পুনরাবৃত্তি করতে বিরক্ত করি নি তাই আমি যতগুলি বিকল্প অন্তর্ভুক্ত করি না।
ডেভিডকন্ড্রে

33

খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করে উপাদানকে ক্লাসে যুক্ত করার জন্য আরেকটি পদ্ধতি

ক্লাস যুক্ত করার জন্য:

document.getElementById("div1").classList.add("classToBeAdded");

ক্লাস অপসারণের জন্য:

document.getElementById("div1").classList.remove("classToBeRemoved");

4
এটি ইতিমধ্যে ব্রাউজার সমর্থন এবং শিমস এর আলোচনা সহ অন্যান্য ব্যবহারকারীদের দ্বারা বেশ কয়েকবার উত্তর দেওয়া হয়েছে।
বাফ্রোমকা

@ বাফ্রোমকা আমি দেখতে পাইনি যে পূর্ববর্তী উত্তর দেওয়া হয়েছিল এবং এটি আমার ভুল। আপনি এই উত্তরটি পতাকাঙ্কিত করতে পারেন
শোয়েব চিকাতে

3
@ শোয়েবচিকাটে: আপনি চাইলে উত্তরটিও মুছতে পারেন (আপনি বিষয়গুলি রাখবেন)। এই প্রশ্নে বিশৃঙ্খলা হ্রাস করার চেষ্টা করছি; সম্পূর্ণ আপনার উপর
ড্যান ড্যাসক্লেস্কু

22

আমি যে কাজটি করছি তা কোনও লাইব্রেরি ব্যবহার করে ওয়ারেন্ট না দিলে আমি এই দুটি ফাংশন ব্যবহার করি:

function addClass( classname, element ) {
    var cn = element.className;
    //test for existance
    if( cn.indexOf( classname ) != -1 ) {
        return;
    }
    //add a space if the element already has class
    if( cn != '' ) {
        classname = ' '+classname;
    }
    element.className = cn+classname;
}

function removeClass( classname, element ) {
    var cn = element.className;
    var rxp = new RegExp( "\\s?\\b"+classname+"\\b", "g" );
    cn = cn.replace( rxp, '' );
    element.className = cn;
}

15
if( cn.indexOf( classname ) != -1 ) { return; } সাবধান থাকুন যে আপনি এখানে "বিটিএন" ক্লাসটি ইতিমধ্যে এখানে উপস্থিত থাকলে "বিটিএন" ক্লাস যুক্ত করেন, এটি ব্যর্থ হয়।
আলেকজান্দ্রে ডিউলোট

1
আপনার element.className.split(" ");সমস্যাটি প্রতিরোধ করতে ব্যবহার করা উচিত @ অ্যালেক্সানড্রেডিয়েলোট এখানে রিপোর্ট করেছেন।
আমির ফো

20

ধরে নিই যে আপনি কেবল এই এক শ্রেণি যুক্ত করার চেয়ে আরও বেশি কিছু করছেন (যেমন, আপনার কাছে অ্যাসিনক্রোনাস অনুরোধ রয়েছে এবং এটির পাশাপাশি চলতেও ), আমি প্রোটোটাইপ বা জিকুয়ের মতো লাইব্রেরিটির পরামর্শ দেব ।

এটি আপনাকে যা করতে হবে তা খুব সহজ করে দেবে (এটি সহ) খুব সাধারণ।

সুতরাং আসুন আমরা এখনই আপনার পৃষ্ঠায় jQuery পেয়েছি বলে মনে করি, আপনি কোনও উপাদানটিতে শ্রেণীর নাম যুক্ত করতে এই জাতীয় কোড ব্যবহার করতে পারেন (এই ক্ষেত্রে লোডে):

$(document).ready( function() {
  $('#div1').addClass( 'some_other_class' );
} );

পরীক্ষা করে দেখুন jQuery এর এপিআই ব্রাউজার অন্যান্য উপাদান জন্য।


15

উপাদান থেকে কোনও শ্রেণি যোগ / অপসারণ করতে আপনি ক্লাসলিস্ট.এডডি বা শ্রেণি তালিকাভুক্ত পদ্ধতিটি ব্যবহার করতে পারেন।

var nameElem = document.getElementById("name")
nameElem.classList.add("anyclss")

উপরের কোডটি নামলেমে একটি শ্রেণি "যে কোনও ক্লাস" যুক্ত করবে (এবং প্রতিস্থাপন করবে না)। একইভাবে আপনি ক্লাস অপসারণের জন্য ClassList.remove () পদ্ধতিটি ব্যবহার করতে পারেন।

nameElem.classList.remove("anyclss")

খুব সুন্দর, তবে IE <= 9 বা সাফারি <= 5.0 ... :( ( caniuse.com/classlist ) এ সমর্থিত নয়
সাইমন


10

একটি উপাদান একটি অতিরিক্ত বর্গ যোগ করতে:

বিদ্যমান মানগুলি অপসারণ / প্রভাবিত না করে কোনও উপাদানকে ক্লাস যুক্ত করতে একটি স্থান এবং নতুন শ্রেণিকাম যুক্ত করুন, এর মতো:

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

কোনও উপাদানটির জন্য সমস্ত শ্রেণি পরিবর্তন করতে:

এক বা একাধিক নতুন ক্লাসের সাথে বিদ্যমান বিদ্যমান ক্লাসগুলিকে প্রতিস্থাপন করতে শ্রেণি নাম বৈশিষ্ট্য নির্ধারণ করুন:

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

(আপনি একাধিক ক্লাস প্রয়োগ করতে একটি স্পেস-সীমাবদ্ধ তালিকা ব্যবহার করতে পারেন))


6

আপনি যদি jQuery ব্যবহার করতে না চান এবং পুরানো ব্রাউজারগুলিকে সমর্থন করতে চান:

function addClass(elem, clazz) {
    if (!elemHasClass(elem, clazz)) {
        elem.className += " " + clazz;
    }
}

function elemHasClass(elem, clazz) {
    return new RegExp("( |^)" + clazz + "( |$)").test(elem.className);
}

5

আমি জানি যে আইআই 9 সরকারীভাবে বন্ধ হয়ে গেছে এবং আমরা element.classListউপরে বর্ণিত যতগুলি দ্বারা এটি অর্জন করতে পারি তবে আমি কেবল এটি classListশিখতে পারলাম উপরের উত্তরগুলির সাহায্য ছাড়াই এটি কীভাবে কাজ করে তা শিখতে চেষ্টা করেছি।

নীচে কোড উপরে অনেক উত্তর প্রসারিত করে এবং সদৃশ ক্লাস যুক্ত এড়িয়ে তাদের উন্নত করে।

function addClass(element,className){
  var classArray = className.split(' ');
  classArray.forEach(function (className) {
    if(!hasClass(element,className)){
      element.className += " "+className;
    }
  });            
}
//this will add 5 only once
addClass(document.querySelector('#getbyid'),'3 4 5 5 5');

5

আমিও মনে করি যে এসি 5-র মতো এলিমেন্ট.প্রোটোটাইপ.গ্লাসলিস্টটি ব্যবহার করা সবচেয়ে দ্রুততম উপায়: document.querySelector(".my.super-class").classList.add('new-class') তবে ie8 তে এলিমেন্ট.প্রোটোটাইপ.ক্লাসলিস্টের মতো কোনও জিনিস নেই, যাইহোক আপনি এই স্নিপেটের সাথে এটি পলিফিল করতে পারবেন (এটি সম্পাদনা করতে এবং উন্নত করতে নিখরচায় পড়েছেন) ):

if(Element.prototype.classList === void 0){
	function DOMTokenList(classes, self){
		typeof classes == "string" && (classes = classes.split(' '))
		while(this.length){
			Array.prototype.pop.apply(this);
		}
		Array.prototype.push.apply(this, classes);
		this.__self__ = this.__self__ || self
	}

	DOMTokenList.prototype.item = function (index){
		return this[index];
	}

	DOMTokenList.prototype.contains = function (myClass){
		for(var i = this.length - 1; i >= 0 ; i--){
			if(this[i] === myClass){
				return true;
			}
		}
		return false
	}

	DOMTokenList.prototype.add = function (newClass){
		if(this.contains(newClass)){
			return;
		}
		this.__self__.className += (this.__self__.className?" ":"")+newClass;
		DOMTokenList.call(this, this.__self__.className)
	}

	DOMTokenList.prototype.remove = function (oldClass){
		if(!this.contains(newClass)){
			return;
		}
		this[this.indexOf(oldClass)] = undefined
		this.__self__.className = this.join(' ').replace(/  +/, ' ')
		DOMTokenList.call(this, this.__self__.className)
	}

	DOMTokenList.prototype.toggle = function (aClass){
		this[this.contains(aClass)? 'remove' : 'add'](aClass)
		return this.contains(aClass);
	}

	DOMTokenList.prototype.replace = function (oldClass, newClass){
		this.contains(oldClass) && this.remove(oldClass) && this.add(newClass)
	}

	Object.defineProperty(Element.prototype, 'classList', {
		get: function() {
			return new DOMTokenList( this.className, this );
		},
		enumerable: false
	})
}


4

অন্যরা কী বলেছে তা কেবল বিশদভাবে জানাতে, একাধিক সিএসএস ক্লাস একক স্ট্রিংয়ে একত্রিত হয়, স্পেস দ্বারা ডিলিট করে। সুতরাং, আপনি যদি এটি হার্ড-কোড করতে চান, এটি কেবল এটির মতো দেখায়:

<div class="someClass otherClass yetAnotherClass">
      <img ... id="image1" name="image1" />
</div>

সেখান থেকে আপনি সহজেই নতুন ক্লাস যুক্ত করার জন্য প্রয়োজনীয় জাভাস্ক্রিপ্টটি অর্জন করতে পারেন ... কেবলমাত্র নতুন শ্রেণীর পরে একটি স্থান যুক্ত করে এলিমেন্টের শ্রেণীর নাম সম্পত্তিতে। এটি জেনে, আপনি প্রয়োজন পরে উত্থাপিত হওয়া পরে কোনও ক্লাস অপসারণ করতে একটি ফাংশনও লিখতে পারেন।


4

একটি সহজ উপায়ে উপাদান ক্লাস যুক্ত করতে, অপসারণ বা পরীক্ষা করতে:

var uclass = {
    exists: function(elem,className){var p = new RegExp('(^| )'+className+'( |$)');return (elem.className && elem.className.match(p));},
    add: function(elem,className){if(uclass.exists(elem,className)){return true;}elem.className += ' '+className;},
    remove: function(elem,className){var c = elem.className;var p = new RegExp('(^| )'+className+'( |$)');c = c.replace(p,' ').replace(/  /g,' ');elem.className = c;}
};

var elem = document.getElementById('someElem');
//Add a class, only if not exists yet.
uclass.add(elem,'someClass');
//Remove class
uclass.remove(elem,'someClass');

4

আপনি jQuery এর অনুরূপ আধুনিক পদ্ধতির ব্যবহার করতে পারেন

আপনার যদি কেবল একটি উপাদান পরিবর্তন করতে হয় তবে প্রথমে জেএস ডিওমে খুঁজে পাবেন, আপনি এটি ব্যবহার করতে পারেন:

document.querySelector('.someclass').className += " red";
.red {
  color: red;
}
<div class="someclass">
  <p>This method will add class "red" only to first element in DOM</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>

শ্রেণীর নামের আগে একটি স্থান রেখে যাওয়ার বিষয়টি মনে রাখবেন ।

আপনার যদি একাধিক ক্লাস থাকে যেখানে আপনি নতুন ক্লাস যুক্ত করতে চান তবে আপনি এটি এটি ব্যবহার করতে পারেন

document.querySelectorAll('.someclass').forEach(function(element) {
  element.className += " red";
});
.red {
  color: red;
}
<div class="someclass">
  <p>This method will add class "red" to all elements in DOM that have "someclass" class.</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>

<div class="someclass">
  <p>lorem ipsum</p>
</div>


3

আমি মনে করি খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করা ভাল, যা আমরা ব্রাউজারের DOM এ চালাতে পারি।

এটি ব্যবহারের কার্যকরী উপায় এখানে। আমি ES6 ব্যবহার করেছি তবে নিখরচায় ES5 এবং ফাংশন এক্সপ্রেশন বা ফাংশন সংজ্ঞা ব্যবহার করুন, যা আপনার জাভাস্ক্রিপ্ট স্টাইলগুইডের জন্য উপযুক্ত।

'use strict'

const oldAdd = (element, className) => {
  let classes = element.className.split(' ')
  if (classes.indexOf(className) < 0) {
    classes.push(className)
  }
  element.className = classes.join(' ')
}

const oldRemove = (element, className) => {
  let classes = element.className.split(' ')
  const idx = classes.indexOf(className)
  if (idx > -1) {
    classes.splice(idx, 1)
  }
  element.className = classes.join(' ')
}

const addClass = (element, className) => {
  if (element.classList) {
    element.classList.add(className)
  } else {
    oldAdd(element, className)
  }
}

const removeClass = (element, className) => {
  if (element.classList) {
    element.classList.remove(className)
  } else {
    oldRemove(element, className)
  }
}


2

খাঁটি জেএস সহ নমুনা। প্রথম উদাহরণে আমরা আমাদের উপাদানটির আইডি পাই এবং উদাহরণস্বরূপ 2 টি ক্লাস যুক্ত করি।

document.addEventListener('DOMContentLoaded', function() {
    document.getElementsById('tabGroup').className = "anyClass1 anyClass2";
})

দ্বিতীয় উদাহরণে আমরা উপাদানটির শ্রেণীর নাম পাই এবং আরও 1 টি যুক্ত করি।

document.addEventListener('DOMContentLoaded', function() {
    document.getElementsByClassName('tabGroup')[0].className = "tabGroup ready";
})

1

লোডাশ ব্যবহার এবং classNameস্ট্রিং আপডেট করতে চান তাদের জন্য :

// get element reference
var elem = document.getElementById('myElement');

// add some classes. Eg. 'nav' and 'nav header'
elem.className = _.chain(elem.className).split(/[\s]+/).union(['nav','navHeader']).join(' ').value()

// remove the added classes
elem.className = _.chain(elem.className).split(/[\s]+/).difference(['nav','navHeader']).join(' ').value()

0

প্রথমে ডিভকে একটি আইডি দিন। তারপরে, কল করুন ফাংশন অ্যাপেন্ডক্লাস:

<script language="javascript">
  function appendClass(elementId, classToAppend){
    var oldClass = document.getElementById(elementId).getAttribute("class");
    if (oldClass.indexOf(classToAdd) == -1)
    {
      document.getElementById(elementId).setAttribute("class", classToAppend);
    }
}
</script>

1
এটি ক্লাসটি এপেন্ড না করে প্রতিস্থাপন করবে! হতে পারে কোনও লাইন অনুপস্থিত বা পুরানো ক্লাস + "" + শেষ শ্রেণীর পরিবর্তে ক্লাসটো
অ্যাপেনডেন্টো

indexOfএকটি নিষ্পাপ সমাধান এবং ইতিমধ্যে চিহ্নিত সমস্যা আছে ।
ড্যান ড্যাসক্লেস্কু

0

আপনি আপনার উপাদানটি নির্বাচন করতে এবং তারপরে উপাদানগুলির সাথে নতুন ফাংশন এবং প্যারামিটার হিসাবে নতুন শ্রেণিকামটি তৈরি করতে আপনি API ক্যোয়ারী নির্বাচনকারী ব্যবহার করতে পারেন। আধুনিক ব্রাউজারগুলির জন্য ক্লাসলিস্ট ব্যবহার করা, অন্যথায় আই 8 এর জন্য। তারপরে আপনি কোনও ইভেন্টের পরে ফাংশনটি কল করতে পারেন।

 //select the dom element
 var addClassVar = document.querySelector('.someclass');

 //define the addclass function
 var addClass = function(el,className){
   if (el.classList){
     el.classList.add(className);
   }
   else {
     el.className += ' ' + className;
  }
};

//call the function
addClass(addClassVar, 'newClass');


0

সংক্ষিপ্ততম

image1.parentNode.className+=' box';


0
document.getElementById('some_id').className+='  someclassname'

বা:

document.getElementById('come_id').classList.add('someclassname')

দ্বিতীয় পদ্ধতির কাজ না হলে প্রথম পদ্ধতির ক্লাস যুক্ত করতে সহায়তা করেছিল।
সামনে একটি জায়গা রাখতে ভুলবেন না' someclassname'প্রথম পদ্ধতির ।

অপসারণের জন্য আপনি ব্যবহার করতে পারেন:

document.getElementById('some_id').classList.remove('someclassname')

-4

এই জেএস কোডটি আমার পক্ষে কাজ করে

শ্রেণীর নাম প্রতিস্থাপন সরবরাহ করে

var DDCdiv = hEle.getElementBy.....

var cssCNs = DDCdiv.getAttribute('class');
var Ta = cssCNs.split(' '); //split into an array
for (var i=0; i< Ta.length;i++)
{
    if (Ta[i] == 'visible'){
        Ta[i] = 'hidden';
        break;// quit for loop
    }
    else if (Ta[i] == 'hidden'){
        Ta[i] = 'visible';
    break;// quit for loop
    }
}
DDCdiv.setAttribute('class',Ta.join(' ') );  // Join array with space and set class name

শুধু ব্যবহার যোগ করুন

var cssCNs = DDCdiv.getAttribute('class');
var Ta = cssCNs.split(' '); //split into an array
Ta.push('New class name');
// Ta.push('Another class name');//etc...
DDCdiv.setAttribute('class',Ta.join(' ') );  // Join array with space and set class name

ব্যবহার অপসারণ করতে

var cssCNs = DDCdiv.getAttribute('class');
var Ta = cssCNs.split(' '); //split into an array

for (var i=0; i< Ta.length;i++)
{
    if (Ta[i] == 'visible'){
        Ta.splice( i, 1 );
        break;// quit for loop
    }
}
DDCdiv.setAttribute('class',Ta.join(' ') );  // Join array with space and set class name

আশা করি এটি সংক্ষেপে সহায়ক


-9

YUI এ, আপনি যদি ইউইডম অন্তর্ভুক্ত করেন তবে আপনি ব্যবহার করতে পারেন

YAHOO.util.Dom.addClass('div1','className');

আছে HTH


12
এটি জাভাস্ক্রিপ্ট বলেছে, jQuery বা YUI নয়।
রাদেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.