如何将String值绑定到<li> -tag,作为隐藏参数?</li>

时间:2014-06-16 12:56:02

标签: javascript jquery html html-lists uid

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

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

我已根据使用<ul><li>标记的模型成功创建了树状结构的浏览器。我也在双击时实现了动作侦听器,找到了id,并采取了相应的行动。这些标识已存储,并作为value - 参数提供给代表树叶或文件名的各个<li>

然而事实证明索引号并非唯一。我预计它们会成为UID的列。我尝试将value设置为UID String。它可以在我的浏览器中运行,因为我生成的HTML代码的片段显示:

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

但是,当我检索该值并将其保存到数据库时,它只获取出现在第一个非数字字符之前的数值。在这种情况下1581.我已经检查过,并得出结论,值参数只接受数字值,这真的很糟糕...

还有其他方法可以将未显示的UID字符串绑定到HTML列表元素吗?

编辑2:

我删除了之前的编辑,因为我意识到了我的误解。自定义数据标记需要语法&#34; data-variablename&#34;,在检索时,我应该省略&#34;数据 - &#34;,然后获取变量名。

4 个答案:

答案 0 :(得分:4)

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

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

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

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

$(el).data('value')

另请参阅:.data()

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

答案 1 :(得分:0)

value已经是一个html属性。因此,浏览器会在您使用它时尝试修复您的值。尝试使用自定义属性,例如data-value

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

答案 2 :(得分:0)

试试这个:

HTML:

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

JQ:

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

答案 3 :(得分:0)

您可以使用jQuery .data()函数。

$(element).data(key, value)