Javascript 更改列表元素的类

Javascript 更改列表元素的类,javascript,jquery,html,html-lists,Javascript,Jquery,Html,Html Lists,我想将每个listlist项的类更改为数组中相应的类。我有一份清单如下: <ul id="list"> <li>Banana</li> <li>Apple</li> <li>Pear</li> <li>Strawberry</li> <li>Lemon</li> </ul> 我想要的是.addClass函数以类在

我想将每个listlist项的类更改为数组中相应的类。我有一份清单如下:

<ul id="list">
    <li>Banana</li>
    <li>Apple</li>
    <li>Pear</li>
    <li>Strawberry</li>
    <li>Lemon</li>
</ul>
我想要的是.addClass函数以类在数组中的顺序更改每个项。为此:

<ul id="list">
    <li class="ban">Banana</li>
    <li class="appl">Apple</li>
    <li class="per">Pear</li>
    <li class="straw">Strawberry</li>
    <li class="lemn">Lemon</li>
</ul>
我该怎么做?

这是为您准备的:

$('#list > li').each(function(i){
    $(this).addClass( myArray[i] );
});

您可以查看此重载的文档,该重载采用functionindex、currentClass回调。

这不起作用,因为.get返回的是DOM元素,而不是jQuery对象。此外,在循环中重新运行相同的选择器也不是一个好主意。鉴于OP对数组中的每个索引都有一个特定的类,我怀疑他是否关心嵌套列表。尽管如此,还是修复了,谢谢!如果给出了代码,.find将很好地工作。您可以始终使用.children代替。+1这也是最可扩展的解决方案。我想用散列替换这个数组。
$('#list > li').each(function(i){
    $(this).addClass( myArray[i] );
});
var classes = ["ban", "appl", "per", "straw", "lemn"];

$('#list > li').addClass(function(index) {
  return classes[index];
});
var myArray = ["ban", "appl", "per", "straw", "lemn"];
$("#list > li").each(function(index) {
    $(this).addClass(myArray[index]);
});
$.each(myArray, function(i, value){
        $('#list li').eq(i).addClass(value);
    }
);