Используя jQuery для обхода DOM, верните атрибуты HTML из узла - PullRequest
1 голос
/ 06 июня 2011

Я хочу пройтись по DOM и определить атрибуты HTML определенных узлов. Например, значение класса для всех тегов.

Следующий член Stackoverflow предложил следующий код для обхода DOM: http://jsfiddle.net/FJeaY/

Он работает хорошо, и я могу использовать его для определения идентификатора узла и его родителей. Также довольно легко фильтровать гиперссылки:

walk_the_DOM(document.body, function(node) {
    if(node.nodeName == "A")
        alert(node.nodeName + ' id: ' + node.id);
});

Однако я не уверен, что использовать для идентификации класса (или любого другого атрибута HTML). Все, что я пытался найти в документации по jQuery, провалилось.

Любые идеи приветствуются, заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Рассматриваемая функция на самом деле вообще не использует jQuery, а документация jQuery не подходит для изучения DOM в целом.

Посмотрите справку MDC HTMLElement .Вам нужен атрибут className :

walk_the_DOM(document.body, function(node) {
    if(node.nodeName == "A") {
        alert(node.nodeName + ' class: ' + node.className);
    }
});
1 голос
/ 06 июня 2011

Оформить заказ http://jsfiddle.net/tahir/7gfuT/

Этот код использует DOM напрямую (только для пояснения понятий). Вы можете использовать функции-оболочки jquery, как это предлагает bazmegakapa, чтобы упростить доступ к атрибутам DOM

1 голос
/ 06 июня 2011

.hasClass() может использоваться для тестирования, если определенный класс находится среди классов, назначенных элементу.Возвращает либо true, либо false.

$(node).hasClass('myclass')

Или вы можете использовать .attr(), чтобы получить атрибут class элемента.

var klassz=$(node).attr('class');

Вместоиз последних вы можете просто использовать node.className.

...