微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JQuery - 将数组元素设置为每个 <li>

如何解决JQuery - 将数组元素设置为每个 <li>

我有一个数组 arrayDescr,我需要使用 forEach 向每个 <li> 添加一个属性 data-valuedata-value 的值应该是一个 arrayDescr 元素。例如,我有三个 <li> 和两个 arrayDescr 元素。三个 <li> 中的两个应该具有属性 data-value arrayDescr[0]、[1] 等。

这段代码有效,但我需要它在 forEach 中工作:

$("#name1").attr("data-value",arrayDescr[0])

#name 应该是 function(){return 'name' (i+1)}。 在 forEach 中,此代码返回 undefined:

arrayDescr.forEach(function(item,index){
$("li").attr("data-value",item[index])}

解决方法

这是一个普通的解决方案

var elem = document.querySelectorAll('li');

for (let i = 0; i < elem.length; i++) {
elem[i].setAttribute("data-value","set value here,or determine how to make it dynamic"+i);
}

我还没有对它进行过测试,但我相信这在没有 JQuery 的情况下应该可以满足您的需求,并且在许多浏览器(包括移动设备)上都可以接受。

for (let i = 0; i < elem.length; i++) {
elem[i].setAttribute("data-value",(YourDescArray[i] !== undefined)?YourDescArray[i]:"problem");
}
,

我认为您应该迭代 li 元素并在 forEach 中设置它们的属性,例如

$("li").each(function(i,item){
    if(arrayDescr.length > i)
        $(item).attr("data-value",arrayDescr[i]);
});
,

您可以像下面这样迭代 li 元素并分配 attr

$( "li" ).each(function( index ) {
     if(index<arrayDescr.length){
       $( this ).attr("data-value",arrayDescr[index]) ;
   }
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。