【问题标题】:Get specific Tag elements in body获取正文中的特定标签元素
【发布时间】:2012-10-04 19:05:41
【问题描述】:

我正在尝试在正文中获取以下所有标签(INPUT、A 和 BUTTON) 有没有办法做到这一点,而不必使用 javascript 遍历正文中的所有标签

var allInputTags = document.body.getElementsByTagName('*');

我正在考虑做类似的事情

var inputtags = document.body.getElementsByTagName('INPUT');
var atags = document.body.getElementsByTagName('A');
var buttontags = document.body.getElementsByTagName('BUTTON');

var allTags = inputtags + atags + buttontags; 

但我认为这样我不会按照它们在 Body 中出现的顺序获取元素。

【问题讨论】:

  • inputtags + atags + buttontags 并非您认为的那样。
  • 您需要如何跨浏览器? document.querySelectorAll('input, a, button') 是一种可能。
  • @FelixKling,我不确定
  • @DavidThomas webkit 会很好...
  • 是否需要按照它们在文档中出现的顺序来获取元素?

标签: javascript html


【解决方案1】:

如果浏览器支持querySelectorAll [MDN],你可以这样做:

var allTags = document.querySelectorAll('input, a, button');

The elements are returned in document order。支持querySelectorAll的浏览器列表见caniuse.com

在所有其他浏览器中,您必须使用getElementsByTagName,但我认为要按顺序排列元素会非常困难。

你也可以考虑使用选择器引擎,比如Sizzle(jQuery使用的引擎)。或者如果你打算做复杂的 DOM 操作,jQuery 本身。

【讨论】:

  • querySelectorAll 对桌面浏览器有很好的支持。
【解决方案2】:

你可以使用 Array.concat

var allTags = inputtags.concat(atags, buttontags); 

【讨论】:

  • 这不会按照它们在文档中出现的顺序为您提供元素。
猜你喜欢
  • 1970-01-01
  • 2015-07-15
  • 2011-01-26
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-12
相关资源
最近更新 更多