使用jQuery将类添加到DOM对象数组的正确方法是什么?

Fro*_*roy 2 html css arrays jquery dom

我尝试了两种类型的迭代技术,但都产生了同样的错误:

addClass不是函数

第一个例子用于:

function game(){
    var cards = $('.card');

    function initialize(){
        for(var x = 0; x < cards.length; x++) {    
            cards[x].addClass('wtf');    
        }
    };
};
Run Code Online (Sandbox Code Playgroud)

第二次尝试使用每个:

function game(){
    var cards = $('.card');

    function initialize(){
        //Add random key values to pairs of cards
        $.each( cards ,function(i, ele) {    
            ele[i].addClass('wtf');
        });
    };
};
Run Code Online (Sandbox Code Playgroud)

操作这些类型数组的正确方法是什么?

Ror*_*san 7

您的代码示例不起作用,因为您试图addClass在DOMElement而不是jQuery对象上调用jQuery方法.

addClass()如果多个元素与jQuery对象中的选择器匹配,则该方法将在内部为您执行循环,因此它只需要进行一行调用:

function game(){
    var $cards = $('.card');

    function initialize() {
        $cards.addClass('wtf');
    };
};
Run Code Online (Sandbox Code Playgroud)

我如何能够选择第五张卡片并将该类别仅添加到该卡片中?

为此,您可以使用以下eq()方法:

$cards.eq(4).addClass('wtf');
Run Code Online (Sandbox Code Playgroud)

请注意,索引是基于零的,因此第5个元素是索引4.