Javascript игра за деца

Опитвам се да направя игра на javascript. Все още имам много проблеми в кода. Кодът трябва да има 2 бутона; един за разбъркване на зарове на изображения и бутон за проверка дали детето е написало правилния отговор или не.

  • 2 бутона
  • 1 текстово поле
  • и място за показване на отговора дали е правилен или не

Ето моят код.

Не знам защо, когато поставя източника на document.getElementbyID("test"), той не показва нищо, защото искам всеки път, когато щракна върху старт, да се избира произволно изображение.

Ще се радвам на всяка помощ, тъй като все още съм начинаещ в javascript.

  <head> 

<script type="text/javascript">


function startf(){
var images = []; 
index = 0;
images[0] = "<img src='1.png' length=70px width=75px>";
images[1] = "<img src='2.png' length=70px width=75px>";
images[2] = "<img src='3.png' length=70px width=75px>";
images[3] = "<img src='4.png' length=70px width=75px>";
index = Math.floor(Math.random() * images.length);
take(index);

function take(ind)
{
return document.getElementbyId("ind")="What should i put here";
}
}
function check(){
var ch=getElementbyId("answer").value;
if (ch=index+1)
{
document.getElementbyId.innerHTML="TRUE";
}
else
{
document.getElementbyId.innerHTML="False";
}

}
</script><br>
</head>
<img id="test" src=""  alt="..." length="75px" width="75px" />

<body>

<input type="button" value="start" onclick="startf()">
<input id="answer" type="text" name="checkvalue" value="Enter Value" onclick="check()">
<div id="fa">
</div>
<input type="button" value=chek onclick="check()">


</body>

person user1928775    schedule 25.12.2012    source източник
comment
ПУНКТУАЦИЯ!...   -  person Mike Robinson    schedule 26.12.2012
comment
Добре дошли в SO. Моля, уверете се, че вашият html е валиден. Има редица html грешки. Също така обмислете използването на jsfiddle.net, за да създадете пример, който може лесно да се анализира. Ще получите много повече помощ.   -  person T. Junghans    schedule 26.12.2012
comment
getElementbyID ID трябва да бъде Id. Имате и такъв, използващ by, който трябва да бъде By. Обмислете използването на по-добра IDE.   -  person Fabrício Matté    schedule 26.12.2012
comment
Конзолата казва: TypeError: Object #<HTMLDocument> has no method 'getElementbyID'. Stackoverflow не е услуга за отстраняване на грешки, можете да направите малко сами.   -  person Felix Kling    schedule 26.12.2012
comment
коригирах идентификатора, но все още разбъркването не работи   -  person user1928775    schedule 26.12.2012
comment
Хубаво е, че се опитвате да направите нещо сами, но преди подобно начинание трябва да придобиете практически познания по JavaScript. В интернет има много уроци и ресурси, първо се запознайте с езика.   -  person Rikonator    schedule 26.12.2012
comment
Пуснете вашия javascript в jshint.com и вашия html през validator.w3.org/#validate_by_input и ако все още имате проблеми, върнете се тук.   -  person T. Junghans    schedule 26.12.2012
comment
На втори поглед, да, има много проблеми по отношение на основите на JavaScript. Препоръчвам първо да прочетете ръководството за JavaScript на MDN: developer.mozilla.org/en- US/docs/JavaScript/Ръководство. Например сравнението се извършва с == или ===, = е операторът за присвояване.   -  person Felix Kling    schedule 26.12.2012


Отговори (3)


1- Поставете и завършете всяка инструкция --> ;

2- Не използвайте document.getElementById директно, ще има поне едно събитие с грешка в него и не искате това.

function _e(id) {
   return document.getElementById(id);
}

3- Винаги поставяйте скоби и (...) около вашите IF-ELSE блокове:

if (...) {
    //....
} else {
    //....
}

4- Всеки атрибут на етикет трябва да има " " около стойностите си, например:

<input type="button" value="start" onclick="check()" />

5- Можете да поставите само пътеки на изображения във вашия масив, тъй като изглежда това, което трябва да се актуализира в #test изображение.

person Frederik.L    schedule 25.12.2012
comment
Знам :-), но мисля, че са важни неща, за които трябва да се погрижите, преди да се заемете с по-големи проекти. - person Frederik.L; 26.12.2012
comment
Въпреки че е добра практика, наличието на кавички около стойностите на атрибутите не винаги е необходимо. В този случай е напълно валидно да ги пропуснете (ако приемем, че това е HTML, а не XHTML). - person Felix Kling; 26.12.2012
comment
@FelixKling благодаря за вниманието, редактирах, за да трябва - person Frederik.L; 26.12.2012
comment
много ви благодаря, прегледах всички отговори, поправих казаното от всички, но не разбрах смисъла от използването на функция за извикване на getElementbyId, защото все още не мога да го направя правилно, просто искам да го показва в горната част на страницата какво проверявам кода си след актуализиране и коригиране, но моля, кажете ми какво трябва да коригирам точно в getElementbyId, защото все още съм начинаещ, благодаря - person user1928775; 26.12.2012
comment
използването на функция за извикване на getElementById е персонализиран трик за избягване на правописни грешки; в колежа повечето проблеми в моя клас бяха причинени от docment.getElementById, document.geteLement... и т.н., така че ми стана навик да гарантирам, че това няма да се случи, вие сте свободни да го използвате или не - person Frederik.L; 26.12.2012
comment
можете ли да коригирате тази част от кода за мен, защото не знам защо все още не работи, моля, само тази част - person user1928775; 26.12.2012
comment
@user1928775: Е, някои кодове, които сте написали, нямат смисъл и коригирането на всяка част от кода за вас не е целта на SO. Например, какво възнамерявате с този ред: return document.getElementbyId("ind")="What should i put here";? Освен правописната грешка, getElementById връща DOM елемент, не можете да присвоите низ към него. Разбирам, че току-що сте започнали с JS, но в този случай първо трябва да прочетете още няколко уроци. - person Felix Kling; 26.12.2012
comment
това е, което те питам, опитвам се да накарам това, което каза, да извика getElementById с помощта на функция - съжалявам, това беше Фредерик - и споменах, че в предишните ми коментари просто ми помогни в частта на getElementbyId, просто ми дай идея не проблем - person user1928775; 26.12.2012
comment
@user1928775 Първо трябва да разберете как работи javascript. Мисля, че съветът, който FelixKling ти даде, е най-добрият за тази част. Няма да научите нищо, ако просто получите окончателното решение тук. - person Frederik.L; 26.12.2012
comment
@user1928775: Идея за какво? document.getElementById ще върне DOM елемента с подаден ID (ако съществува). След това можете да манипулирате възела. Какво още искате да знаете? - person Felix Kling; 26.12.2012

Това е document.getElementById проверете корпуса. Вашата функция за проверка е грешна... не можете да присвоите стойност на функцията document.getElementById. Също така вашето ако е грешно. Знаете ли някакъв JavaScript?

person Kees C. Bakker    schedule 25.12.2012

Предполагам, че това, което искате, вероятно е нещо подобно. Изглежда, че се опитвате да добавите или замените елемент само с помощта на document.getElementById(id) = something, но не работи така. Вместо това, за да промените изображение в друг файл, трябва да промените неговия атрибут src. (Има и други начини, но този може би е най-простият.)

// Declare the variable called number here so it can be accessed
// by all of the following functions.
var number;

// a simple function to save typing document.getElementById all the time
function _e(id) {
    return document.getElementById(id);
}
function startf() {
    // Pick a number between 1 and 4
    number = Math.floor(Math.random() * 4 + 1);

    // Set the image with id 'test' to have the source 1.png, 2.png etc.
    _e('test').src = number + '.png';
}

function check() {
    // note that == is used for comparison, = is used for assignment
    if (_e('answer').value == number) {
        _e('fa').innerHTML = "TRUE";
    }
    else {
        _e('fa').innerHTML = "False";
    }
}​
person Stuart    schedule 25.12.2012