У меня есть таблица HTML, представляющая доску в приложении для настольных игр. Он имеет произвольное количество строк и столбцов с элементами 'td', представляющими квадраты игры.jquery addClass неправильный синтаксис?
Я пытаюсь заполнить ряд квадратов платы «class = play» с небольшим количеством «class = hasAtoms» в случайных местах. Команды 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');
}
Просто к сведению, но '$ ($ (это) .get (RND)) addClass.() 'может быть' $ (this) .eq (rnd) .addClass() ' –
Что это значит? Как вы называете 'placeAtoms'? Кроме того, в первом селекторе вы ищете элементы '.play', которые не имеют класса' .hasAtom' ('.play: not (.hasAtom)'). После цикла вы ищете элементы '.hasAtom', которые являются * потомками * элементов' .play' ('.play .hasAtom'). Второй должен быть, скорее, '.play.hasAtom'. –
Не могли бы вы также указать HTML. Кажется, что проблема заключается в селекторе $ (this) – CodeGodie