[英]Select elements based on class and element type
如何选择具有特定类和特定元素类型的HTML文档中的所有元素?
我正在尝试从HTML文档中选择title loggedin
类title loggedin
所有锚点(然后在浏览器中打开它们)。 这些是与类别title
parragraphs。
它们是以下DOM树中的叶子:
+ body
+ div class='content'
+ div id='siteTable' class='sitetable linklisting'
+ div class='thing id-t3_xxxx xxx xxx link'
+ div class='entry unvoted'
+ p class='title'
+ a class='title loggedin '
其中x
表示可变内容。
(我希望在原始JavaScript中执行此操作,即不在jQuery中。)
尝试这个:
var aElems = document.getElementsByTagName("a");
for (var i=0; i<aElems.length; ++i) {
var classesArr = aElems[i].className.split(/\s+/),
classesObj = {};
for (var j=0; j<classesArr.length; ++j) {
classesObj[classesArr[i]] = true;
}
if (classesObj.hasOwnProperty("title") && classesObj.hasOwnProperty("loggedin")) {
// action
}
}
一些解释:
document.getElementsByTagName
返回给定类型的元素数组(在本例中为a
) aElems[i].className.split
) aElems[i].className.split
) 从技术上讲,这不是一个类,它是两个类: title
和loggedin
。 您可以使用document.getElementsByClassName()
。
var elements = document.getElementsByClassName("title loggedin");
您可以将两个类传递给该方法。
使用document.getElementsByTagName()
获取某个标记类型的所有元素并遍历列表应该有效。 对于多个类,您必须手动解析className
属性(将包含已title loggedin
的完整字符串title loggedin
)。
我假设您有充分的理由在纯JavaScript中执行此操作; 使用像jQuery或Prototype这样的框架会更方便。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.