DOM. Выборка элемента по классу ручками
Добрый день, как сделать выборку элементов по class="classname", с помощью Javascript а не Библиотек.
А потом как это сделать командой/функцией? То есть моя задача, создать функцию как в библиотеках jQuery и т.д. чтобы пользователю осталось только вписать имя класса. Помогите, а то у меня с DOM беда. |
В современных браузерах есть querySelectorAll, в некоторых - getElementsByClassName, а для остальных в цикле фильтруй коллекцию getElementsByTagName("*"), проверяя свойство className каждого элемента.
|
есть встроенная функция
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; } } |
Цитата:
|
Спасибо всем кто ответил, буду пробовать и отпишусь о результатах.
|
И так Люди сделал как вы сказали. Я создал функцию, которая в зависимости от переданного параметра выбирает нужный элемент по 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. Но это уж очень не разумно. |
гуглите в сторону arguments , arguments.length и function.length
|
Часовой пояс GMT +3, время: 09:50. |