#javascript #html
#javascript #HTML
Вопрос:
Вот мой исходный код.Если функция indexof не нашла никакого результата, выведите -1.Я хотел бы его изменить.
function searchForString() {
var str = document.getElementById("string").value;
document.getElementById("output").innerHTML = str;
var input = document.getElementById("input");
var button = document.getElementById("search");
var output = document.getElementById("output");
output.textContent = "Index of string "" input.value "": " str.indexOf(input.value);
}
Я попытался создать новую переменную, подобную этой, и попытался создать функцию if, но она не работает.
var hiba = "hiba";
if (output == -1) {
document.getElementById("output").innerHTML = hiba;
} else {
output.textContent = "Index of string "" input.value "": " str.indexOf(input.value);
}
Комментарии:
1. Похоже, вы перепутали свои переменные, с одной стороны, у вас есть
output == -1
, а с другой стороны, вы используетеoutput
, чтобы быть элементом с идентификаторомoutput
,.. Может быть, ввести другую переменную, возможно, называемую idx..
Ответ №1:
Вы проверяете output
, равно ли -1
значение, когда вы хотите проверить, равен ли возвращаемый индекс indexOf
-1
. Что-то вроде этого должно сработать.
function searchForString() {
var str = document.getElementById("string").value;
var input = document.getElementById("input").value;
var output = document.getElementById("output");
output.innerHTML = str;
var index = str.indexOf(input);
if (index === -1) {
output.textContent = "hiba";
}
else {
output.textContent = "Index of string "" input "": " index;
}
}
Ответ №2:
Вы можете использовать тернарный оператор ( ?
), чтобы изменить его значение в зависимости от того, является ли оно -1
или нет. (Документы: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator )
var str = document.getElementById("string").innerHTML;
var input = document.getElementById("input");
var button = document.getElementById("search");
var output = document.getElementById("output");
function searchForString() {
output.textContent = str.indexOf(input.value) == -1 ? "String "" input.value "" not found" : "Index of string "" input.value "": " str.indexOf(input.value); // if string == -1, say "String not found", otherwise say index of string
}
String: <span id="string">abcdefghijklmnopqrstuvwxyz</span><br />
<label for="input">Find this character: </label><input id="input" type="text"><br />
<button id="search" onclick="searchForString()">Search</button><br />
<div id="output"></div>