如何使用 JavaScript 动态创建图像元素?
在 HTML 中,图像元素用于在网页上显示图像。根据需求,它可以接受多个属性,例如“src”、“alttext”、“height”、“width”等。
在某些情况下,我们需要动态地向网页添加图像。例如,我们在数据库中存储了数量未知的电影数据。我们需要获取电影数据,并为每部电影显示电影图像及其详细信息。在这种情况下,我们需要使用 JavaScript 将图像和数据附加到 DOM。
下面,我们将学习如何使用 JavaScript 向网页添加图像元素。
使用 Document.createElement() 方法
document.createElement() 方法使用 JavaScript 创建任何 HTML 元素。它以标签名称作为参数,并返回 HTML 元素。
在 JavaScript 中创建 HTML 元素后,我们可以修改其各种属性,并将其附加到 DOM 以在网页上显示图像。
语法
用户可以按照以下语法使用 document.createElement() 方法动态创建图像元素。
let dynamicImage = document.createElement('img');
dynamicImage.src = URL;
在上面的语法中,我们使用 createElement() 方法创建了图像元素,并更新了图像元素的“src”属性。
示例
在下面的示例中,我们首先创建了图像元素。之后,我们将想要在网页上显示的图像 URL 更新到它的“src”属性。
接下来,我们使用其 ID 从 DOM 访问预定义的 div 元素,并使用 appendChild() 方法将新创建的图像作为 div 元素的子元素附加。
在输出中,用户可以看到使用 JavaScript 添加的图像。
<html>
<body>
<h3>Using the <i> document.createElement() method </i> to Create image element dynamically using JavaScript </h3>
<div id = "img"> </div>
<script>
let img = document.getElementById('img');
// Create image element
let dynamicImage = document.createElement('img');
// Initialize the image source
dynamicImage.src = "https://tutorialspoint.com/static/images/logo.png";
// Add image to DOM
img.appendChild(dynamicImage);
</script>
</body>
</html>
示例
在下面的示例中,我们创建了按钮。每当用户点击按钮时,它都会执行 createImage() 函数。
在 createImage() 函数中,我们使用 createElement() 方法创建一个新的图像元素,并更新其“src”属性值。此外,我们使用 setAttribute() 方法设置图像的 ID、高度和宽度。
在输出中,用户可以点击按钮查看 200 x 200 像素的图像。但是,用户可以在代码中更改尺寸并运行代码以查看输出。
<html>
<body>
<h3>Using the <i> document.createElement() method </i> to Create image element dynamically using JavaScript </h3>
<div id = "img"> </div>
<button id = "addImage" onclick = "createImage()"> Create Image </button>
<script>
function createImage() {
let img = document.getElementById('img');
let newImage = document.createElement('img');
newImage.src = "https://tutorialspoint.com/static/images/simply-easy-learning.png";
// Set attribute values for the image
newImage.setAttribute('id', 'myImage');
newImage.setAttribute('width', '200px');
newImage.setAttribute('height', '200px');
img.appendChild(newImage);
}
</script>
</body>
</html>
使用 Image() 构造函数
image() 是一个构造函数,用于在 JavaScript 中创建图像元素的实例。我们使用带有“new”关键字的构造函数在 JavaScript 中创建图像实例,并将其附加到 DOM 对象。
语法
用户可以按照以下语法使用 Image() 构造函数使用 JavaScript 创建图像。
Let img = new Image(); img.src = URL;
在上面的语法中,我们使用 image() 构造函数创建了图像元素的实例,并更新了其 src 属性的值。
示例
在下面的示例中,当用户点击按钮时,它会执行 createImage() 函数以动态附加到 DOM。
在 createImage() 函数中,我们使用 Image() 构造函数初始化图像实例,然后更新其 src 属性的值。此外,我们通过更新属性值来设置图像的宽度和高度,并将其作为 div 元素的子元素附加。
<html>
<body>
<h3>Using the <i> Image() constructor </i> to Create image element dynamically using JavaScript</h3>
<div id = "img"> </div>
<button id = "addImage" onclick = "createImage()"> Create Image </button>
<script>
function createImage() {
let img = document.getElementById('img');
let devImage = new Image();
devImage.src = "https://tutorialspoint.com/static/images/development.svg";
devImage.setAttribute('width', '300px');
devImage.setAttribute('height', '300px');
img.appendChild(devImage);
}
</script>
</body>
</html>
示例
在下面的示例中,我们使用 JavaScript 将多个图像附加到网页。
在 addMultiple() 函数中,我们有一个图像 URL 数组。我们遍历数组,在每次迭代中,我们创建一个新的图像元素,使用给定的源 URL 更新 src 属性,并将其附加到 DOM。
在输出中,用户可以点击按钮查看网页上的五个动态图像。此外,每次用户点击按钮时,它都会更改图像。
<html>
<body>
<h3>Using the <i> Image() constructor </i> to Create image element dynamically using JavaScript</h3>
<div id = "img"> </div>
<br> <br>
<button id = "addImage" onclick = "AddMultiple()"> Add Multiple Images </button>
<script>
function AddMultiple() {
let img = document.getElementById('img');
let imageURLS = [
"https://picsum.photos/200/300",
"https://picsum.photos/200/300/?blur",
"https://picsum.photos/200/300.webp",
"https://picsum.photos/200",
"https://picsum.photos/200/300"
]
// Fetch random images and append to the DOM
for (let i = 0; i < 5; i++) {
let randomImage = new Image();
randomImage.src = imageURLS[i];
randomImage.alt = "Random Image";
randomImage.width = 100;
randomImage.height = 100;
// Add right and left margin to the image
randomImage.style.marginRight = "10px";
randomImage.style.marginLeft = "10px";
img.appendChild(randomImage);
}
}
</script>
</body>
</html>
我们学习了两种将图像动态附加到 Dom 元素的方法。createElement() 方法创建任何 HTML 元素(包括图像元素)的实例。image() 构造函数仅用于创建图像元素的实例,而不是其他 HTML 元素。
此外,正如最后一个示例所示,我们可能会在实时开发中获得一个图像 URL 数组,我们需要将多个动态图像附加到网页。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP