Странная проблема с Javascript. Что происходит:Javascript Если заявление ведет себя странно
- Пользователь нажимает кнопку, он передает значение ASCII скрипту.
- Значение ASCII хранится в переменной под названием «выбор»
- Затем скрипт прокручивает файл XML и сравнивает первую букву каждого названия фильма с выбором var.
- Точка сценария должна показывать пользователю все фильмы, начинающиеся с буквы по своему выбору.
Проблема:
- Все буквы отлично работает для S и P.
функция Go (выбор), за исключением {
var nextChar = choice;
nextChar++;
$.ajax({
type: "GET",
url: "../xml/movielist.xml",
dataType: "xml",
success: function (xml)
{
var link = '<a href="';
var linkMid = '">';
var linkEnd = "</a>";
var output = "";
$(xml).find('movie').each(function() //For each <Movie> tag, retrieve the following:
{
var title = $(this).find('title').text() //Retreive Movie's Title
if ((title.substring(0, 5) == "The " + String.fromCharCode(choice)) || (title.substring(0, 1) == String.fromCharCode(choice)) || (title.substring(0, 3) == "A " + String.fromCharCode(choice)))
{
/*Deleted lines here to save space and they also don't apply to the problem at hand*/
output = output + "<tr>" + rowOut + "</td>";
}
if (title.substring(0, 1) == String.fromCharCode(nextChar))
{
document.getElementById("results").innerHTML = output;
return false;
}
})
}
}) } ;
Пример кода XML. Это первые два фильма, которые начинаются с буквы С.
<movie>
<title>Salt</title>
<link>films/salt.aspx</link>
<runtime>1h 34m</runtime>
</movie>
<movie>
<title>See No Evil</title>
<link>films/seenoevil.aspx</link>
<runtime>1h 24m</runtime>
</movie>
Позвольте мне повторить, что этот сценарий прекрасно работает и выводит результаты на экран для каждой буквы, кроме S, P и Z (хотя я знаю, почему Z не работает, я еще не написал код). Я понятия не имею, почему S и P ведут себя по-другому. Через некоторую отладку я пришел к выводу, что оператор If никогда не вводится, когда пользователь выбирает S или P, что означает, что условия в операторе If не выполняются, даже если переменная «выбор» равна 80 или 83 (P или S соответственно) на протяжении всего упражнения.
Я уверен, что это что-то глупое, но я действительно не могу обернуть вокруг себя голову.
Любые предложения были бы весьма полезными. Заранее спасибо!
Вы можете взять то, что вы писали и перегонять его в чем-то немного больше концентрировали. Представьте, что вы пишете письмо своему коллеге. Нам очень трудно прочитать параграфы и параграфы и выяснить, что вы хотите. Дайте пару фраз, объясните, что вам нужно, затем укажите свой вопрос явно. Таким образом, нам будет намного легче помочь вам. –
Вы уверены, что название не имеет ведущих пробелов? Также вы пробовали тестировать его только для if (title.substring (0, 1) == String.fromCharCode (выбор)), когда выбор «S»? –
@JeromeAnthony Да, я пробовал только одно условие, и ни один из заголовков в файле XML не имеет перед ними пробела. – Alcolawl