使用jQuery来遍历DOM,从节点返回HTML属性

时间:2011-06-06 07:15:36

标签: javascript jquery dom dom-traversal

我想浏览DOM并识别某些节点的HTML属性。例如,所有标签的类值。

Stackoverflow的另一个成员建议使用以下代码来处理DOM:http://jsfiddle.net/FJeaY/

效果很好,我可以用它来识别节点的ID和它的父节点。过滤超链接也非常容易:

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

但是我不确定使用什么来识别类(或任何其他HTML属性)。到目前为止,我搜索jQuery文档的所有内容都失败了。

任何想法都表示赞赏,请提前感谢。

3 个答案:

答案 0 :(得分:2)

有问题的函数实际上根本不使用jQuery,而jQuery文档通常不适合学习DOM。

查看MDC HTMLElement reference。你想要的是className attribute

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

答案 1 :(得分:1)

.hasClass()可用于测试特定类是否属于分配给该元素的类。将返回true或false。

$(node).hasClass('myclass')

或者您可以使用.attr()获取元素的class属性。

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

而不是后者,您只需使用node.className

答案 2 :(得分:1)

结帐http://jsfiddle.net/tahir/7gfuT/

此代码直接使用DOM(仅用于阐明概念)。您可以使用bazmegakapa建议的jquery包装函数来简化对DOM属性的访问