我正在尝试做一个简单的 javascript 字符串比较,但似乎没有任何效果。我的 .ajax 读取数据库表并返回字符串。然后,我通过使用 jQuery 遍历我的 UI 复选框,将每个字符串与 .text() 值进行比较。当两个字符串匹配时,我想使用 jQuery 来检查具有匹配字符串的复选框。typeof "string" 处的两种类型的变量。
我在代码中尝试过的事情,要么不显示匹配的字符串相等,要么有时它显示每个字符串都是相等的,即使它们看起来不相等。我尝试过的这些东西,有些在控制台中,通常呈现“未定义”。我已经搜索和研究并尝试了一些无济于事的事情。难倒。我试过了:
==、===、乘以 *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 选中该框。相反,字符串要么一直呈现为不相等,要么一直呈现为相等。
事后编辑:我无法使代码可复制,因为它从远程服务器获取数据 - 它很简单:
if(question_text == checkbox_text).
我的 .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 - 复选框的数量]。
我像这样抓住每个 UI 复选框的 text() ,如我的代码所示:
checkbox_text = jQuery('#ocCheckBox' + i).text();
console.log 将 checkbox_text 显示为 typeof 字符串。console.log 显示 checkbox_text 文本:“提高了获得高质量护理的机会。”。
因此,现在它显示 question_text 和 checkbox_text 都是“字符串”并且都包含“改进了对高质量护理的访问。”。
然后我使用以下方法将数据库中的 question_text 与 checkbox_text 进行比较:
if(question_text == checkbox_text) { ... THIS is where it does not compare the strings properly.
希望这会有所帮助,再次感谢您对此的关注,仍然很难过。