<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: className code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 07:59:23 GMT</pubDate>
    <description>DZone Snippets: className code</description>
    <item>
      <title>Javascript Manipulate Class Names</title>
      <link>http://snippets.dzone.com/posts/show/2630</link>
      <description>I often have to manipulate class names of objects in javascript.&lt;br /&gt;But className can have multiple classes in it.&lt;br /&gt;These functions deal with that.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;// HasClassName&lt;br /&gt;//&lt;br /&gt;// Description : returns boolean indicating whether the object has the class name&lt;br /&gt;//    built with the understanding that there may be multiple classes&lt;br /&gt;//&lt;br /&gt;// Arguments:&lt;br /&gt;//    objElement              - element to manipulate&lt;br /&gt;//    strClass                - class name to add&lt;br /&gt;//&lt;br /&gt;function HasClassName(objElement, strClass)&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;   // if there is a class&lt;br /&gt;   if ( objElement.className )&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;      // the classes are just a space separated list, so first get the list&lt;br /&gt;      var arrList = objElement.className.split(' ');&lt;br /&gt;&lt;br /&gt;      // get uppercase class for comparison purposes&lt;br /&gt;      var strClassUpper = strClass.toUpperCase();&lt;br /&gt;&lt;br /&gt;      // find all instances and remove them&lt;br /&gt;      for ( var i = 0; i &lt; arrList.length; i++ )&lt;br /&gt;         {&lt;br /&gt;&lt;br /&gt;         // if class found&lt;br /&gt;         if ( arrList[i].toUpperCase() == strClassUpper )&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            // we found it&lt;br /&gt;            return true;&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;   // if we got here then the class name is not there&lt;br /&gt;   return false;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;// &lt;br /&gt;// HasClassName&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;// AddClassName&lt;br /&gt;//&lt;br /&gt;// Description : adds a class to the class attribute of a DOM element&lt;br /&gt;//    built with the understanding that there may be multiple classes&lt;br /&gt;//&lt;br /&gt;// Arguments:&lt;br /&gt;//    objElement              - element to manipulate&lt;br /&gt;//    strClass                - class name to add&lt;br /&gt;//&lt;br /&gt;function AddClassName(objElement, strClass, blnMayAlreadyExist)&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;   // if there is a class&lt;br /&gt;   if ( objElement.className )&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;      // the classes are just a space separated list, so first get the list&lt;br /&gt;      var arrList = objElement.className.split(' ');&lt;br /&gt;&lt;br /&gt;      // if the new class name may already exist in list&lt;br /&gt;      if ( blnMayAlreadyExist )&lt;br /&gt;         {&lt;br /&gt;&lt;br /&gt;         // get uppercase class for comparison purposes&lt;br /&gt;         var strClassUpper = strClass.toUpperCase();&lt;br /&gt;&lt;br /&gt;         // find all instances and remove them&lt;br /&gt;         for ( var i = 0; i &lt; arrList.length; i++ )&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            // if class found&lt;br /&gt;            if ( arrList[i].toUpperCase() == strClassUpper )&lt;br /&gt;               {&lt;br /&gt;&lt;br /&gt;               // remove array item&lt;br /&gt;               arrList.splice(i, 1);&lt;br /&gt;&lt;br /&gt;               // decrement loop counter as we have adjusted the array's contents&lt;br /&gt;               i--;&lt;br /&gt;&lt;br /&gt;               }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;      // add the new class to end of list&lt;br /&gt;      arrList[arrList.length] = strClass;&lt;br /&gt;&lt;br /&gt;      // add the new class to beginning of list&lt;br /&gt;      //arrList.splice(0, 0, strClass);&lt;br /&gt;      &lt;br /&gt;      // assign modified class name attribute&lt;br /&gt;      objElement.className = arrList.join(' ');&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;   // if there was no class&lt;br /&gt;   else&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;      // assign modified class name attribute      &lt;br /&gt;      objElement.className = strClass;&lt;br /&gt;   &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;// &lt;br /&gt;// AddClassName&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;// RemoveClassName&lt;br /&gt;//&lt;br /&gt;// Description : removes a class from the class attribute of a DOM element&lt;br /&gt;//    built with the understanding that there may be multiple classes&lt;br /&gt;//&lt;br /&gt;// Arguments:&lt;br /&gt;//    objElement              - element to manipulate&lt;br /&gt;//    strClass                - class name to remove&lt;br /&gt;//&lt;br /&gt;function RemoveClassName(objElement, strClass)&lt;br /&gt;   {&lt;br /&gt;&lt;br /&gt;   // if there is a class&lt;br /&gt;   if ( objElement.className )&lt;br /&gt;      {&lt;br /&gt;&lt;br /&gt;      // the classes are just a space separated list, so first get the list&lt;br /&gt;      var arrList = objElement.className.split(' ');&lt;br /&gt;&lt;br /&gt;      // get uppercase class for comparison purposes&lt;br /&gt;      var strClassUpper = strClass.toUpperCase();&lt;br /&gt;&lt;br /&gt;      // find all instances and remove them&lt;br /&gt;      for ( var i = 0; i &lt; arrList.length; i++ )&lt;br /&gt;         {&lt;br /&gt;&lt;br /&gt;         // if class found&lt;br /&gt;         if ( arrList[i].toUpperCase() == strClassUpper )&lt;br /&gt;            {&lt;br /&gt;&lt;br /&gt;            // remove array item&lt;br /&gt;            arrList.splice(i, 1);&lt;br /&gt;&lt;br /&gt;            // decrement loop counter as we have adjusted the array's contents&lt;br /&gt;            i--;&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;      // assign modified class name attribute&lt;br /&gt;      objElement.className = arrList.join(' ');&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;   // if there was no class&lt;br /&gt;   // there is nothing to remove&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;// &lt;br /&gt;// RemoveClassName&lt;br /&gt;// ----------------------------------------------------------------------------&lt;br /&gt;  &lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 20 Sep 2006 21:34:35 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2630</guid>
      <author>Will_Rickards (Will Rickards)</author>
    </item>
  </channel>
</rss>
