Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2011, 14:07
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

DOM. Выборка элемента по классу ручками
Добрый день, как сделать выборку элементов по class="classname", с помощью Javascript а не Библиотек.
А потом как это сделать командой/функцией?
То есть моя задача, создать функцию как в библиотеках jQuery и т.д.
чтобы пользователю осталось только вписать имя класса. Помогите, а то у меня с DOM беда.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2011, 14:11
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В современных браузерах есть querySelectorAll, в некоторых - getElementsByClassName, а для остальных в цикле фильтруй коллекцию getElementsByTagName("*"), проверяя свойство className каждого элемента.
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2011, 14:18
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

есть встроенная функция getElementsByClassName, она не работает в шестом и седьмом осле

так что придется реализовывать велосипед только для них

вместо того, чтобы делать это самому, возьму пример с robertnyman.com

function getElementsByClassName(node, classname) {
    if (node.getElementsByClassName) {
        // если есть стандартная, костыли не используем
        return node.getElementsByClassName(classname);

    } else {

        var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
        var elements = node.all ? node.all : node.getElementsByTagName("*");
        var returnElements = [];
        var current;
        var length = elements.length;
        for (var i = 0; i < length; i++) {
            current = elements[i];
            if (testClass.test(current.className)) {
                returnElements.push(current);
            }
        }
        return returnElements;

    }
}
Ответить с цитированием
  #4 (permalink)  
Старый 17.09.2011, 14:18
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

Сообщение от Octane Посмотреть сообщение
В современных браузерах есть querySelectorAll, в некоторых - getElementsByClassName, а для остальных в цикле фильтруй коллекцию getElementsByTagName("*"), проверяя свойство className каждого элемента.
Попробую, я просто всегда обходился для работы с DOM с пом. jQuery а теперь понял что сам в DOM 0. Попробую отпишусь.
Ответить с цитированием
  #5 (permalink)  
Старый 17.09.2011, 14:21
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

Спасибо всем кто ответил, буду пробовать и отпишусь о результатах.
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2011, 17:53
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

И так Люди сделал как вы сказали. Я создал функцию, которая в зависимости от переданного параметра выбирает нужный элемент по id/classname/tagname. Теперь мне нужно усложнить данную функцию.

Вопрос: "Как определить количество параметров, переданных вызывающей функцией?"

Тоесть: есть функция
function Same(a, b, c, d, e, f, g, h, t, e, r, t, y, u)
{
Тело функции
}
в коде вызывается наша функция
Same(some, tru, some, half); И наша функция должна определить сколько параметров передали отсюда. В данном случае бы вернула 4.
Я знаю как это сделать тупым способом - проверять каждую переменную на undefined. Но это уж очень не разумно.
Ответить с цитированием
  #7 (permalink)  
Старый 18.09.2011, 18:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

гуглите в сторону arguments , arguments.length и function.length
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить порядковый номер элемента DOM ? dummer jQuery 7 17.01.2014 17:44
Существует ли скрипт, который рисует стрелки от одного элемента DOM к другому? FINoM Элементы интерфейса 4 15.05.2011 21:23
Выборка по классу а не по ID Brankub Общие вопросы Javascript 1 29.09.2010 11:25
onClick эвент для всего документа, кроме отдельно взятого элемента DOM el_erizo Events/DOM/Window 5 19.03.2010 15:09
Как определить id дочернего элемента DOM? Motonto Events/DOM/Window 1 09.04.2009 08:13