L84*_*L84 1 javascript jquery custom-data-attribute
我的代码看起来像这样:
<ul class="effects-list">
<li data-creative="1">Creative</li>
<li data-uplifted="3">Uplifted</li>
<li data-energetic="3">Energetic</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
然后Javascript读取数据属性:
$(function() {
var effectData = $('.effects-list li');
var creative = effectData.data("creative");
var uplifted = effectData.data("uplifted");
var energetic = effectData.data("energetic");
console.log(creative);
console.log(uplifted);
console.log(energetic);
});
Run Code Online (Sandbox Code Playgroud)
我在控制台日志中结束了这个:
1
undefined
undefined
Run Code Online (Sandbox Code Playgroud)
为什么脚本在第一个li元素中读取信息而不是在后两个元素中读取信息?
我有什么问题,如何解决问题?
由于您使用的是getter版本data(),因此它只会查看给定集合中的第一个元素,该元素没有所述数据属性.
返回指定数据存储中jQuery集合中第一个元素的值,由数据(名称,值)或HTML5 data-*属性设置.
解决方案是使用属性存在选择器来定位正确的元素,然后获取数据值.就像是
var uplifted = effectData.filter('[data-uplifted]').data("uplifted");
Run Code Online (Sandbox Code Playgroud)
演示:小提琴
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |