Regex,getElementsByTagName和getElementsByClassName

时间:2017-02-08 09:40:51

标签: javascript

我在window.onLoad中使用HTML代码调用findElements,  tmp2选择所有标签,但其他标签不适用。我真的想不出来;提前致谢。

function findElements(){
    var tmp = document.getElementsByClassName("*"); // nothing
    var tmp2 = document.getElementsByTagName("*");  // all tags, so regexp could be input arg.
    var tmp3 = document.getElementsByTagName("b..."); // nothing, but body tag is supposed to be selected
}

1 个答案:

答案 0 :(得分:1)

getElementsByTagName方法不接受正则表达式作为参数。

它只接受字符串,它必须是:

  • 外卡*
  • 元素类型的完全匹配

getElementsByClassName方法不接受正则表达式

它只接受字符串,必须是:

  • 班级名称的完全匹配

querySelectorAll方法可以使用attribute selectors进行更复杂的属性匹配(包括类属性),但即使它不支持正则表达式。

如果您真的想要进行正则表达式匹配,则需要使用通配符(getElementsByTagName("*"))选择所有元素,然后循环结果,依次测试每个元素。