Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обращение к элементу по классу (https://javascript.ru/forum/events/33799-obrashhenie-k-ehlementu-po-klassu.html)

shtopor 08.12.2012 18:42

Обращение к элементу по классу
 
Здравствуйте, подскажите как обращаться по классу? documentGetElementByClass нету, а в сети большая часть примеров нерабочие. Подскажите что делать?

cyber 08.12.2012 18:47

Цитата:

Сообщение от shtopor
documentGetElementByClass нету,

wtf?
<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    <div class="t"></div>
    <div class="t"></div>
    <div class="t"></div>
    <div class="t"></div>
    <script>
var elems = document.getElementsByClassName("t");
alert(elems.length);


    </script>

  </body>
</html>

shtopor 08.12.2012 19:21

Суди по записям на других форумах, не все брузеры это поддерживают

cyber 08.12.2012 19:33

shtopor, либо забейте на ие меньше 8 , либо используйте jquery.
или так
function Cls(FindClass){
	
	 var allTag, allElem, arrE = [], i;
	
	    if(document.getElementsByClassName){
			return document.getElementsByClassName(FindClass);
		}
		
	     allElem = document.body.getElementsByTagName('*');
	       
	       i = allElem.length;
	
	while(i--){
	    if(allElem[i].className == FindClass) arrE.push(allElem[i]);
	};
	return arrE;
	}

shtopor 08.12.2012 20:29

Спасибо большое, забыл про getElementsByTagName)) А как заменит тег? innerHTML отвечает только за содержимое.

cyber 08.12.2012 20:49

shtopor, что бы не завадть глупых вопрос по читайте http://learn.javascript.ru/dom

a_l 08.12.2012 22:13

Цитата:

Сообщение от cyber (Сообщение 220308)
shtopor, либо забейте на ие меньше 8

Меньше 9, восьмой ие не поддерживает getElementsByClassName.
IE8 поддерживает querySelectorAll('.t'), так что можно его использовать.

cyber 08.12.2012 22:58

a_l, да чет думал до 8й, а оказалось до 9й)
тогда можно так
function Cls(FindClass){
	
	 var allElem, arrE = [], i;
	
 if(document.getElementsByClassName){

   return document.getElementsByClassName(FindClass);
		
 }
      
  else if(document.querySelectorAll){
    
         return document.querySelectorAll("."+FindClass);
       }
        
		
	     allElem = document.body.getElementsByTagName('*');
	       
	       i = allElem.length;
	
	while(i--){
	    if(allElem[i].className == FindClass) arrE.push(allElem[i]);
	};
	return arrE;
	}


Часовой пояс GMT +3, время: 09:16.