#javascript #arrays
#javascript #массивы
Вопрос:
У меня есть таблица карточек, которую я могу перетасовывать и сортировать без проблем, но когда я пытаюсь создать таблицу из массива, таблица работает нормально, но функция shuffle больше не работает. Любая помощь с благодарностью.
//Create table works fine with cards all in order
document.writeln('<table border = 1 align = "center" >');
for(var j=0; j<cardSet.length; j ){
if(j%13==0 amp;amp; j!==0){
document.writeln('</tr><tr>');
}
document.writeln('<td ><img id = "' cardSet[j].id '" src="' cardSet[j].src '" /></td>');
}
document.writeln('</tr></table>');
//shuffle function that works of with a manually created table but not with the code above
function shuffleCards() {
for(i=0; i<SIZE; i )
cardSet[i] = i;
for(i=0; i<SIZE; i ) {
rndCard1 = Math.floor(Math.random()*SIZE);
rndCard2 = Math.floor(Math.random()*SIZE);
shuffleTemp = cardSet[rndCard1];
cardSet[rndCard1] = cardSet[rndCard2];
cardSet[rndCard2] = shuffleTemp;
}
for(i=0; i<cardSet.length; i )
cardSet[i].src = document.getElementById(i).src;
}
Комментарии:
1. Этот пример кода не выглядит полным, не могли бы вы объяснить, куда вы звоните
shuffleCards
, пожалуйста?2. Является ли document.writes функцией, которую вы вызываете после загрузки? Если это так, измените на
var table = ""; for ......{ table ="..." } document.getElementById("somecontainer").innerHTML=table:
3. Также, пожалуйста, посмотрите в консоли (F12) на наличие ошибок
4. Также
cardSet[i] = i;
заменит элемент в индексе на номер5. Извините, хотел сказать, что я вызываю функцию с помощью кнопки buttonDiv.innerHTML='<тип ввода =»button» значение =»Shuffle» onclick=»shuffleCards();»/>’;