首页 > 解决方案 > 有没有办法在不使用标记名的情况下调用 HTML 元素?

问题描述

这是一个简单的问题:有没有办法在不使用的情况下调用 HTML 元素:

document.getElementsByTagName('HTML')[0]

使用 JavaScript。为了得到身体,你可以做:

document.body

有没有更简单的方法来用 JavaScript 做到这一点?

标签: javascripthtml

解决方案


所有这些都可以用来获取对<html>元素的引用:

  • document.documentElement
  • document.querySelector('html')
  • document.querySelectorAll('html')[0]
  • document.getElementById('foo') - 如果<html id="foo">设置
  • document.getElementsByClassName('bar')[0]- 如果<html class="bar">设置
  • document.getElementsByTagName('html')[0]
  • document.head.parentElement
  • document.body.parentElement

您还可以通过使用or<html>向上导航来获取对根元素的引用:parentElementparentNode

var anyElement = document.getElementById('somethingOtherThanHtml');
var htmlElement = anyElement;
while( htmlElement.tagName != "HTML" ) {
    htmlElement = htmlElement.parentElement;
}

并且document也是其中的一员window(其实window就是所有浏览器网页脚本场景中的“根对象”),所以只要有window就可以去window.document.documentElement等等。


推荐阅读