如何将数据附加到DOM元素以供jQuery使用
How to attach data to DOM elements for jQuery consumption
我有一个项目列表,所有项目都有一个id和一个值。我使用div在php视图脚本中打印这个列表,如下所示:
<div class="myList">
<div class="listItem item3 value4">item label</div>
<div class="listItem item5 value7">item label</div>
...
</div>
其想法是包含一些jQuery,以便为列表项附加一些编辑功能。为了操作每个项目,我需要jQuery中的项目ID和值ID,我现在通过查找类模式itemID和valueID并提取ID部分(当然,这是每个项目的一个数字。然后,我用这些ID进行ajax调用,更新列表中正确的项目(给它一个用户可以选择的新值ID)
我的问题是:我做这件事的方式很有效,但对我来说似乎不太优雅。jQuery.data方法在这里似乎没有帮助,在jQuery发挥作用之前,数据需要由php视图脚本打印,所以数据需要出现在html结构中,然后由jQuery读取。我想到了自定义html属性
<div class="listItem" itemID="4" valueID="7">labeltext</div>
但这种做法好吗?有没有更好的方法将数据"馈送"到jQuery?这通常是怎么做的?
使用HTML5 data
属性:
<div class="listItem" data-item-id="4" data-value-id="7">labeltext</div>
您将受益于使用jQuery的.data()
语法:
$('.listItem').eq(0).data('item-id'); // Returns: 4
您可以使用数据属性:
<div class="listItem"
data-id="4"
data-valueId="7">
labelText
</div>
并使用以下方法在JS中恢复它们:(当您的选择器在listItem类上时)
...
var $this = $(this); //just an habit ;)
var id = $this.data('id');
var valueId = $this.data('valueId');
...
相关文章:
- 可以't附加html元素jquery
- 循环遍历元素jquery选择器
- 在ajax加载的元素jquery上包含现有的jquery函数
- 如何删除元素列表中的类并添加到另一个元素 Jquery.
- 获取单击的类元素 jQuery 的名称值
- 获取上一个元素 jQuery 的内容
- 根据另一个元素的更改获取一个元素(jquery)
- 区分不同的可拖放元素(jQuery 拖放)
- 除了最后一个<td>元素-Jquery
- 获取子元素jQuery的单选按钮值
- 捕获元素jquery外部的mousedown事件
- .append到非DOM元素jQuery
- 获取其父元素的精确子元素.Jquery
- 获取重复结构中的特定元素jquery
- 捕获隐藏输入元素jQuery的值
- 使用onclick函数获取点击的元素jquery
- 返回父元素 jquery 中的输入值
- 按属性查找元素 jQuery
- 选择元素 jQuery
- 按子元素 - jQuery 的数据 ID 对 li 进行排序