根据元素的文本设置数据属性?
Set data attribute based on text of element?
是否可以根据 HTML 元素的文本设置 data-*
属性的值?示意性地,这就是我的想法:
<div data-text={this.text}>example</div>
导致 data-text="example"
。
我认为如果你设置一个 id
然后通过它获取元素是可能的,就像这样:
<div id="exampleId" data-text={document.getElementById("exampleId").textContent}>example</div>
但这不是我所希望的,因为它需要提前设置id
(所以也可以只设置data
属性提前)。我的目标是避免提前设置特定于元素的任何内容,并使用元素本身的 属性 来设置它。
也许这甚至不是一个定义明确的问题!但我想我会问。提前致谢:)
您可以使用 querySelectorAll
并将逻辑应用于具有 data-text
属性的每个元素,如下所示:
const elements = document.querySelectorAll("[data-text]")
elements.forEach(element => {
element.setAttribute("data-text", element.innerText)
})
是否可以根据 HTML 元素的文本设置 data-*
属性的值?示意性地,这就是我的想法:
<div data-text={this.text}>example</div>
导致 data-text="example"
。
我认为如果你设置一个 id
然后通过它获取元素是可能的,就像这样:
<div id="exampleId" data-text={document.getElementById("exampleId").textContent}>example</div>
但这不是我所希望的,因为它需要提前设置id
(所以也可以只设置data
属性提前)。我的目标是避免提前设置特定于元素的任何内容,并使用元素本身的 属性 来设置它。
也许这甚至不是一个定义明确的问题!但我想我会问。提前致谢:)
您可以使用 querySelectorAll
并将逻辑应用于具有 data-text
属性的每个元素,如下所示:
const elements = document.querySelectorAll("[data-text]")
elements.forEach(element => {
element.setAttribute("data-text", element.innerText)
})