jquery addClass语法不正确?

时间:2014-10-27 17:13:14

标签: jquery

我有一个HTML表格,代表棋盘游戏应用中的主板。它有任意数量的行和列,'td'元素代表游戏方块。

我正在尝试在随机位置填充少量'class = hasAtoms'的'class = play'棋盘方块。 Console.log命令显示初始选择器返回合理数量的对象,'rnd'是一个有效的随机数,但最终的console.log无法检测到任何'class = hasAtom'对象 - 有什么建议吗?

function placeAtoms(numberOfAtoms) {
    var rnd, len;
    do {
        len = $('#board .play:not(.hasAtom)').length;
        rnd = Math.floor((Math.random() * len) + 1);
        $($(this).get(rnd)).addClass('hasAtom');
        numberOfAtoms--;
    } while (numberOfAtoms > 0);
    console.log($('#board .play .hasAtom').length + ' squares have atoms');
}

1 个答案:

答案 0 :(得分:0)

问题出在$(this)选择器上。您需要声明它或传入参数。假设你想要一个随机的" .play"孩子在"#board"元素容器,我会试试这个:

    function placeAtoms(numberOfAtoms) {
        var rnd, len;
        do {
            len = $('#board .play:not(.hasAtom)').length;
            rnd = Math.floor((Math.random() * len) + 1);
            $($("#board .play").eq(rnd)).addClass('hasAtom');
            numberOfAtoms--;
        } while (numberOfAtoms > 0);
        console.log($('#board .hasAtom').length + ' squares have atoms');
    }