Я пытаюсь сделать простое сравнение строк JavaScript, но, похоже, ничего не работает. Мой .ajax читает таблицу БД и возвращает строки. Затем я сравниваю каждую строку со значением .text (), просматривая свои флажки в пользовательском интерфейсе с помощью jQuery. Когда две строки совпадают, я хочу использовать jQuery, чтобы установить флажок с соответствующей строкой. Оба типа переменных в typeof "string".
Вещи, которые я пробовал в коде, либо не показывают совпадающие строки как равные, либо иногда это показывает, что все строки равны, даже если они не кажутся равными. Эти вещи, которые я пробовал, некоторые в консоли, обычно отображают "Undefined". Я искал и исследовал и пробовал вещи безрезультатно. Тупик. Я пробовал:
==, ===, умножение * 1 с использованием toLowerCase (), toUpperCase (), trim (), valueOf (), eval, toString ().
jQuery.each(data, function(index) {
var question_id = data[index].question_id;
var question_text = data[index].question_text;
for (i = 1; i <= 25 ; i++) { //checkbox element uses i as part of its id.
checkbox_text = jQuery('#ocCheckBox' + i).text(); //checkbox text
if (question_text == checkbox_text) {
//jQuery('#ocCheckBox' + i).jqxCheckBox('checked', true);
console.log(
"id/text: " + i + "/" + question_id + "/" + question_text + " =? #ocCheckBox" + i + ": " + jQuery('#ocCheckBox' + i).text()
);
}
}
}
Я ожидаю сравнить 2 строки, когда они совпадут, затем установите флажок с помощью jQuery. Вместо этого либо строки отображаются как неравные все время, либо все время равны.
Отредактировано ex post facto: я не могу сделать код воспроизводимым, потому что он получает данные с удаленного сервера - это так просто, как:
if(question_text == checkbox_text).
my .ajax вызывает файл .php, выполняя Select, который возвращает массив json_encode.
jQuery.each(data, function(index)
циклически перебирает «данные», захватывая текст следующим образом:
var question_text = data[index].question_text;
console.log показывает, что это typeof = string.
console.log показывает следующий текст: «Улучшенный доступ к высококачественной медицинской помощи».
Далее я перебираю все флажки [исправил мою публикацию с $ EOCQ_OCcount var до просто 25 - количество флажков].
Я беру текст () каждого флажка пользовательского интерфейса, как показано в моем коде:
checkbox_text = jQuery('#ocCheckBox' + i).text();
console.log показывает, что checkbox_text является строкой typeof.
console.log показывает текст checkbox_text: «Улучшен доступ к высококачественной медицинской помощи».
Итак, теперь он показывает, что question_text и checkbox_text оба являются «string» и оба содержат «Улучшенный доступ к высококачественной помощи».
Затем я сравниваю question_text из БД с checkbox_text, используя это:
if(question_text == checkbox_text) { ... THIS is where it does not compare the strings properly.
Надеюсь, это поможет, и еще раз спасибо за ваше внимание к этому, все еще в тупике.