gpt4 book ai didi

html - 在 Scala.js 中按 ID 获取类型元素

转载 作者:可可西里 更新时间:2023-11-01 13:00:44 26 4
gpt4 key购买 nike

我在 DOM 中有一个图像元素的 HTML ID,我想以 HTMLImageElement 的形式获取该元素.

我知道 document.querySelector(s"#$imageId") 但这只会返回 HTMLElement这不是很有用,因为我需要访问,例如,图像的 src 属性。

如何从 DOM 中获取 typed 元素?

最佳答案

一种方法是转换 document.querySelector 返回的 HTMLElement 并返回一个 Option[Image]:

import org.scalajs.dom.document
import org.scalajs.dom.html.Image

def getImage(imageId: String): Option[Image] = {
val queryResult = document.querySelector(s"#$imageId")
queryResult match {
case image: Image => Some(image)
case other =>
println(s"Element with ID $imageId is not an image, it's $other")
None
}
}

用法:

val result = getImage("my-image").fold {
"Couldn't find image"
} { image => s"My image URL: ${image.src}" }

println(result)

适用于各种元素(imgdivinput 等)的更通用的解决方案是:

import scala.reflect.ClassTag
import org.scalajs.dom.document

def getElement[T: ClassTag](elementId: String): Option[T] = {
val queryResult = document.querySelector(s"#$elementId")
queryResult match {
case elem: T => Some(elem)
case other =>
println(s"Element with ID $elementId is $other")
None
}
}

用法:

import org.scalajs.dom.html.Div

val divResult = getElement[Div]("my-div").fold {
"Couldn't find div"
} { div => s"Div display style: ${div.style.display}" }

println(divResult)

关于html - 在 Scala.js 中按 ID 获取类型元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40070612/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com