作为一名初学者,我想创建一个html文档,提供一个与Stack Exchange站点中广泛使用的“揭秘搅局器”非常相似的功能。
因此,我的文档有几个<div>
元素,每个元素都有一个onClick
事件列表,当单击它时,应该会显示隐藏的文本。
我已经知道这可以通过,例如,通过
<div onclick="this.innerHTML='Revealed text'"> Click to reveal </div>
但是,我希望文本最初存储在一个变量中,比如txt
,它将在元素被单击时使用,如下所示:
<div onclick="this.innerHTML=txt"> Click to reveal </div>
由于将有许多这样的<div>
元素,我当然不能将要显示的文本存储在全局变量中。我的问题是:
我可以声明一个特定html元素的本地变量吗?
2条答案
按热度按时间kzipqqlq1#
是的你可以。从本质上讲,HTML元素只是带有属性/键和值的Java脚本对象。因此您可以向一个HTML Element对象添加一个键和一个值。
但您必须将其添加到位于元素内部的
dataset
对象中,如下所示:您需要的实际示例可能如下所示:
要访问您所单击的特定元素的数据/变量,必须将
event
对象作为函数参数传递。此event
对象由Click事件(或任何其他事件)自动提供给您。当然,在您的例子中,您可能希望在初始页面/组件加载时添加属性/变量,并且只在单击时注入或显示它--实质上将上面的函数一分为二。
vx6bjr1n2#
元素具有属性,因此您可以将信息放入属性中。自定义属性通常应为data attributes。单击时,检查父元素是否具有您感兴趣的属性之一,如果有,则切换该父元素。
这是最接近于“特定html元素的本地变量”。要在JavaScript中完全定义文本,一种选择是使用数组,然后在数组中查找扰流元素的单击索引。
还有一些库允许这样的事情,方法是将每个元素与一个组件(库使用的一个JavaScript函数/对象)相关联,并以某种方式向该组件发送一个变量。