переменная <div> не отображается

0

Я следую учебнику Microsoft по созданию приложений для метро в JavaScript. Ссылка Когда вы нажимаете кнопку, она должна сказать: "Привет, имя!" Моя не делает этого. Я прошел код вверх и вниз и не могу найти разницы. My greetingOutput div просто не отображается. Я изменил код, чтобы кнопка отображала greetingOutput, которая работает, поэтому я знаю, что мой обработчик событий и функция работают. Вот мой код:

Default.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jsHelloWorld</title>

<!-- WinJS references -->
<link href="//Microsoft.WinJS.2.0/css/ui-light.css" rel="stylesheet" />
<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>

<!-- jsHelloWorld references -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
</head>
<body>
<h1 class="headerClass">Hello World!</h1>
<div class="mainContent">
    <p>What your name?</p>
    <input id="nameInput" type="text"></input>
    <button id="helloButton">Say "Hello"</button>
    <div id="greetingOutput"></div>
    <label for="ratingControlDiv">
        Rate this Greeting:
    </label>
    <div id="ratingControlDiv" data-win-control="WinJS.UI.Rating">
    </div>
    </div>
 </body>
 </html>

Default.js

// For an introduction to the Blank template, see the following documentation:
// http://go.microsoft.com/fwlink/?LinkId=232509
(function () {
"use strict";

var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;

app.onactivated = function (args) {
    if (args.detail.kind === activation.ActivationKind.launch) {
        if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
            // TODO: This application has been newly launched. Initialize
            // your application here.
        } else {
            // TODO: This application has been reactivated from suspension.
            // Restore application state here.
        }
        args.setPromise(WinJS.UI.processAll());

        var helloButton = document.getElementById("helloButton");
        helloButton.addEventListener("click", buttonClickHandler, false);
    }
};

app.oncheckpoint = function (args) {
    // TODO: This application is about to be suspended. Save any state
    // that needs to persist across suspensions here. You might use the
    // WinJS.Application.sessionState object, which is automatically
    // saved and restored across suspension. If you need to complete an
    // asynchronous operation before your application is suspended, call
    // args.setPromise().
};

function buttonClickHandler(eventInfo) {

    var userName = document.getElementById("nameInput").value;
    var greetingString = "Hello, " + userName + "!";
    document.getElementById("greetingOutput").innertext = greetingString;
    helloButton.innerText = greetingOutput.innertext

}

app.start();
})();

default.css

body {
}

.headerClass {
margin-top: 45px;
margin-left: 120px;
}

.mainContent {
margin-top: 31px;
margin-left: 120px;
margin-bottom: 50px;
}

#greetingOutput {
height: 20px;
margin-bottom:
}
Теги:
microsoft-metro
windows-8

1 ответ

0
Лучший ответ

javascript чувствителен к регистру, innerText должен быть написан с помощью капитала T, попробуйте это

document.getElementById("greetingOutput").innerText = greetingString;
                                           ....^

и удалите эту строку

helloButton.innerText = greetingOutput.innertext  // REMOVE THIS
  • 0
    Вау, спасибо! Я знал, что это будет что-то крошечное. Я прошел этот код сравнения строк за строкой 4 раза, большое спасибо! Я также знал, что научусь чему-то ценному, если смогу найти проблему. Скорее всего, никогда не забуду это сейчас!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню