如何将字符串值绑定到< light >-标记,作为隐藏参数

How can I tie a String value to a <li>-tag, as a hidden parameter?

本文关键字:标记 参数 隐藏 light 绑定 字符串      更新时间:2023-09-26

我正在从我不管理的数据库中提取数据。它是一个单独的列表,重要的值是:

  • 文件夹名称
  • 索引Integer
  • UID(唯一标识)String

我已经成功地创建了一个树形结构的浏览器,基于一个使用<ul><li>标签的模型。我还实现了双击时的动作监听器,它找到了id,并采取了相应的行动。这些标识被存储起来,并作为代表叶子或文件名的单个<li>value参数找到。

然而,事实证明,索引数字不是唯一的。我希望它们是,即使有一个UID的列,我试图将value设置为UID String。它可以在我的浏览器中工作,正如我生成的HTML代码片段所示:

<li role="treeitem" value="1581f20c-0ef9-4c21-a8ab-a407da310cf5" ... >

但是,当我检索值并将其保存到数据库时,它只获得出现在第一个非数字字符之前的数字值。这里是1581。我检查了一下,得出的结论是value-parameter只接受数字值,这对我来说真的很糟糕…

是否有其他方法将未显示的UID字符串绑定到HTML-list元素?

EDIT 2:

我删除了我之前的编辑,因为我意识到我的误解是什么。自定义数据标记需要"data-variablename"语法,在检索它时,我应该提交"data-",并且只获取变量名称。

<li>元素的value属性是一个序数值,仅用于<ol>上下文中(即编号列表)。

相反,您可以将这段信息作为数据项添加:

<li role="treeitem" data-value="abc-foo-bar" ...>

然后,使用this再次访问该值:

$(el).data('value')

参见:.data()

jQuery为每个元素添加了一个特殊属性,该属性唯一地标识"保留"内存中包含数据的对象,因此您不必担心覆盖元素本身的任何内容。

value已经是一个html属性。所以当你使用它时,浏览器会尝试修复你的值。尝试使用自定义属性,如data-value:

<li role="treeitem" data-value="1581f20c-0ef9-4c21-a8ab-a407da310cf5" ... >

试试这个:

HTML:

<li data-uid="[your-UID-here]">

金桥:

$("li").data("uid");

可以使用jQuery .data()函数

$(element).data(key, value)