Javascript slice() 不是我的 li 元素列表的函数

Javascript slice() is not a function with my list of li elements

如何将以下 jquery 转换为 javascript?

iElement.children('li')
.css({ "background": "#DDD" })
.slice(0, 1)
.css({ "background": c.col });

IElement.children('li') returns 以下内容:

 [li.point, li.point, li.point, li.point, li.point]

其中 iElementul

问题来自 slice()。 iElement 是一个对象数组,但我收到一条错误消息,指出 whatever.slice() 不是函数

我正在尝试为我的 angularjs 应用编写密码强度指令。

你得到这个异常是因为你试图通过 nodeList 调用 Array 方法(.slice()),这不是一个array.

您必须将此 nodeList 视为 array,您可以:

  • 要么将其转换为 Array.from() 调用 .slice().
  • 之前的方法
  • 或者这样称呼:Array.prototype.slice.call(IElement.children('li'));

似乎只是将第一个元素设置为不同的颜色:

elements = document.querySelectorAll('ul#iElement > li')
c = { col:'#ABC' }

for (var i = 1; i < elements.length; i++)
    elements[i].style.background = '#DDD'
  
if (elements[0]) elements[0].style.background = c.col
<ul id='iElement'>
  <li> 1 </li>
  <li> 2 </li>
  <li> 3 </li>
  <li> 4 </li>
</ul>