在TypeScript中访问元素
在TypeScript中,要访问一个元素,或者我们可以说HTML组件,我们使用文档对象模型(DOM)。 DOM定义了一个HTML和XML编程接口,将文档的结构可视化为节点树。段落、按钮、div、标题等只是树中每个节点所代表的一些文档元素的示例。
TypeScript中的document对象作为访问DOM的门户。这意味着我们可以使用TypeScript轻松访问DOM的元素。有几种方式可以访问元素,这些方式包括:
- 使用document.querySelector()方法
-
使用document.getElementById()方法
-
使用document.getElementsByClassName ()方法
-
使用document.getElementsByTagName ()方法
在本教程中,我们将讨论前两种方法,即document.querySelector()和document.getElementById()方法。
使用getElementById()方法
document.getElementById()方法是最常用的方法,也是在TypeScript中访问HTML元素的主要方法。此方法以用户想要访问的元素的ID作为参数,并将该元素作为对象返回。
例如,如果您有一个ID为“myDiv”的HTML元素,您可以在TypeScript中像这样访问它:
语法
let myDiv = <HTMLElement>document.getElementById("myDiv");
//Manipulating the element by setting its innerHTML
myDiv.innerHTML = "Hello, World!";
示例
在这个示例中,我们有一个id为”root”的HTML div元素。在脚本中,我们使用document.getElementById()方法通过它的id来访问这个元素。这个方法以字符串”root”作为参数,返回该元素作为一个对象。然后我们将这个对象赋值给变量root。
我们使用了两个带有点击事件处理程序的按钮来执行”changeText”和”changeBG”函数。这些函数分别改变元素的innerHTML文本和背景色。由于TypeScript代码不能在HTML中使用,我们需要先编译它,然后将编译后的JavaScript代码与HTML一起使用。
TypeScript代码
需要编写TypeScript代码和编译的文件。
let root = <HTMLElement>document.getElementById('root')
function changeText() {
root.innerHTML = 'The text is changed!'
}
function changeBG() {
root.style.background = '#b8f0e5'
}
</HTMLElement>
HTML代码
HTML代码是定义网页元素的地方。
<html>
<body>
<h2>Access an <i>Element</i> in TypeScript</h2>
<button onclick="changeText()">Change Text</button>
<button onclick="changeBG()">Change Background Color</button>
<div id="root" style="padding: 10px; background: #f0ecb8">
This is a Div element!
</div>
<script>
//Compiled TypeScript File
var root = document.getElementById('root')
function changeText() {
root.innerHTML = 'The text is changed!'
}
function changeBG() {
root.style.background = '#b8f0e5'
}
</script>
</body>
</html>
如果指定ID的元素不存在,该方法将返回null,因此在操作返回的元素之前,检查此情况是必要的。
使用querySelector()方法
使用TypeScript访问DOM元素的另一种方式是使用querySelector()和querySelectorAll()方法。这些方法通过CSS选择器选择元素,类似于jQuery。
语法
const el = <HTMLElement>document.querySelector('#myDiv');
示例
在这个示例中,我们使用querySelector()方法使用TypeScript访问HTML元素。我们使用一个输入字段来输入内容,并尝试通过访问输入字段和一个div元素在网页上显示相同的文本。我们使用querySelector()方法,并传递输入字段和div元素的id。我们在输入字段上添加了一个on-input事件属性,以便在用户对其进行输入时执行一个函数。这个函数用于访问这两个元素,并将div的文本更改为输入字段上的精确文本。
<html>
<body>
<h2>Access an <i>Element</i> in TypeScript</h2>
<h4>Enter your text:</h4>
<input oninput="changeInput()" id="inputField" type="text" />
<div id="root" style="padding: 10px; background: #d5ed9c"></div>
<script>
//Compiled TypeScript File
var root = document.querySelector('#root')
var inputField = document.querySelector('#inputField')
function changeInput() {
root.innerHTML = inputField.value
}
</script>
</body>
</html>
输出
请注意,getElementsByClassName、getElementsByTagName和getElementsByName方法也允许您访问元素,但它们返回的是一个元素集合,而不是一个单独的元素。
在TypeScript中访问HTML元素,您可以使用document对象及其各种方法,如getElementById、querySelector和querySelectorAll,来查找您想要访问的元素,然后按需操作它。