Я читаю код другого пользователя с сайта, который они размещают на reddit, который они создали для создания генератора случайных имен. Я понимаю большую часть того, что происходит, за исключением выборочной проверки. Вот ссылка на сайт. http://saturdaykid.com/usernames/generator.html. Я все еще очень новичок в JavaScript, но этот сайт дает мне хорошее представление о том, как JavaScript используется на веб-сайте.Использование JavaScript для создания генератора случайных имен
Я не понимаю, что происходит в инструкции if. В методе Markup нет имен классов для элементов select или элементов элементов, которые я могу видеть. Итак, в основном, я не понимаю, что оператор if равен if (!selectedAdj)
, проверяя, является ли значение этого элемента равным нулю? почему он создает имя класса, если в разметке нет ни одного из них?
if (!selectedAdj) {
var adj = document.getElementById("adjective");
adj.className = "notSelected";
return false;
} else {
var adj = document.getElementById("adjective");
adj.className = "";
}
Вот целая функция
// Ensures the user has chosen an adjective and a noun
var validate = function() {
var adjectives = document.getElementById("adjective");
var selectedAdj = adjectives.options[adjectives.selectedIndex].value;
if (!selectedAdj) {
var adj = document.getElementById("adjective");
adj.className = "notSelected";
return false;
} else {
var adj = document.getElementById("adjective");
adj.className = "";
}
var nouns = document.getElementById("noun");
var selectedNoun = nouns.options[nouns.selectedIndex].value;
if (!selectedNoun) {
var noun = document.getElementById("noun");
noun.className = "notSelected";
return false;
} else {
var noun = document.getElementById("noun");
noun.className = "";
}
generator(selectedAdj, selectedNoun);
};
Хорошо, я знаю только некоторые основы CSS, поэтому позвольте мне попробовать и понять это. Я предполагаю, что он написал класс .notSelected в своем css, и он использует javascript для назначения имени класса, если (! SelectedAdj) истинно? и если условие не равно null, оно присваивает className = ""? Почему он возвращает false? и почему он присваивает пустой строке классуName? –
Я отредактировал ответ для этого комментария. –