SOFTSOUL: Как найти элемент по классу
Форум веб дизайна - разработка и создание сайтов, сделать сайт, раскрутка сайта! Форум веб разработчиков дизайн студии SOFTSOUL - общение профессиональных программистов, дизайнеров и веб-промоутеров! Работа - как найти работу за рубежом! Отдых в Крыму и Недвижимость в Крыму! > Форумы веб-разработчиков сайтов > Веб программирование на Java Script и Action Script
Satir
Какая несправедливость - можно взять элемент по инетефикатору, можно по тегу, вот по классу - нельзя, а мне как раз надо было - вот сел да написал, правда возможны в ней баги, поэтому - кто найдет - пишете, буду потихоньку версию обгрейжевать ,)




CODE

function getElementsByClassName(cls, parent){
var clses = [];
var i = 0;
if (parent == undefined) parent = document.body;
var childs = parent.childNodes;
for (i=0; i<childs.length; i++) {
 if (childs[i].className != undefined)
  if ((childs[i].className).indexOf(cls)>=0) clses[clses.length] = childs[i];
 if (childs[i].childNodes.length > 0) {
  var childclses = [];
  childclses = getElementsByClassName(cls, childs[i]);
  clses = clses.concat(childclses);
 }
}
return clses;
}

Alligator
Когда в классе часть названия есть искомый класс, то он находит его как искомый, dry.gif те.:

var seachClass = getElementByClassName('seachClass');

...

<тег class="seachClassNOT"></тег>

то в массиве seachClass попадет и этот элемент.. blink.gif
Вот тебе баг намбер ван smile.gif
Satir
QUOTE(Alligator @ Mar 30 2007, 03:37 PM)
Когда в классе часть названия есть искомый класс, то он находит его как искомый,  dry.gif те.:

var seachClass  = getElementByClassName('seachClass');

...

<тег class="seachClassNOT"></тег>

то в массиве seachClass попадет и этот элемент.. blink.gif
Вот тебе баг намбер ван  smile.gif
[right][snapback]2046[/snapback][/right]



Вот тебе измененая версия:
CODE

function getElementsByClassName(cls, parent){
if ((cls + '').indexOf('\\b') < 0) {
 cls = '(\\b)+(' + cls + ')+(\\b)+';
 cls = new RegExp(cls);
}
var clses = [];
if (parent == undefined) parent = document.body;
var childs = parent.childNodes;
for (var i=0; i<childs.length; i++) {
 if (childs[i].className != undefined)
  if ((childs[i].className).search(cls)>=0) clses[clses.length] = childs[i];
 if (childs[i].childNodes.length > 0) {
  var childclses = [];
  childclses = getElementsByClassName(cls, childs[i]);
  clses = clses.concat(childclses);
 }
}
return clses;
}

Если кто то еще найдет какие либо баги плиз пишите будем исправлять!
Индекс цитирования Дизайн студия SOFTSOUL www.softsoul.com Крым купить недвижимость, продать недвижимость, дома, дачи, эллинги, отели. Покупка недвижимости на южном берегу Крыма! Крым Отдых в Крыму - частный сектор, пансионаты, санатории, гостинницы, эллинги, дачи, виллы на южном берегу Крыма! Студия веб дизайна Сделать сайт
Студия веб дизайна SOFTSOUL. CMS, CMR, система управления  сайтом и контентом!  Крымская дизайн студия AzureAit - оригинальный дизайн Вашего сайта! Раскрутка сайта! Самые эффективная раскрутка сайтов. Раскрутка сайта навсегда! Продвижение сайта на первые места поисковых систем!  Отдых в Крыму! Санатории, пансионаты, частный сектор... Покупка недвижимости в Крыму, качественная аренда жилья, лучшие элитные коттеджи и виллы Крыма.