我从我不管理的数据库中提取数据。它是一个列表,重要的值是:
Integer
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;,然后获取变量名。
答案 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)