Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么简单的javascript字符串比较不起作用?_Javascript_String Comparison - Fatal编程技术网

为什么简单的javascript字符串比较不起作用?

为什么简单的javascript字符串比较不起作用?,javascript,string-comparison,Javascript,String Comparison,我试图做一个简单的javascript字符串比较,但似乎什么都不起作用。ajax读取db表并返回字符串。然后,通过使用jQuery在UI复选框中循环,将每个字符串与.text值进行比较。当这两个字符串匹配时,我想使用jQuery来选中包含匹配字符串的复选框。这两种类型的变量都是字符串类型 我在代码中尝试过的东西,要么不显示匹配的字符串相等,要么有时显示每个字符串相等,即使它们看起来不相等。我尝试过的这些东西,一些在控制台中,通常呈现未定义。我搜索、研究并尝试了一些没有用的东西。难倒了。我试过:

我试图做一个简单的javascript字符串比较,但似乎什么都不起作用。ajax读取db表并返回字符串。然后,通过使用jQuery在UI复选框中循环,将每个字符串与.text值进行比较。当这两个字符串匹配时,我想使用jQuery来选中包含匹配字符串的复选框。这两种类型的变量都是字符串类型

我在代码中尝试过的东西,要么不显示匹配的字符串相等,要么有时显示每个字符串相等,即使它们看起来不相等。我尝试过的这些东西,一些在控制台中,通常呈现未定义。我搜索、研究并尝试了一些没有用的东西。难倒了。我试过:

==,==,乘以*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()
            );
        }
    }
}
my.ajax调用一个.php文件,执行一个Select操作,返回一个json_编码数组。

循环通过数据获取文本,如下所示:

var question_text = data[index].question_text;
console.log显示这是一个typeof=字符串。 console.log显示的文本是:改善对高质量护理的访问

接下来,我循环检查所有复选框[将我的帖子从$EOCQ_OCcount var更正为仅仅25个复选框]

我抓取每个UI复选框的文本,如下所示,如代码所示:

checkbox_text = jQuery('#ocCheckBox' + i).text();
console.log将复选框_文本显示为字符串类型。 console.log显示复选框\文本:改进了对高质量护理的访问

因此,现在它显示问题文本和复选框文本都是字符串,并且都包含改进的高质量护理

然后,我使用以下方法将db中的问题文本与复选框文本进行比较:

if(question_text == checkbox_text) { ... THIS is where it does not compare the strings properly.

希望这对您有所帮助,再次感谢您对这一问题的关注,这一点仍然很难解决。

如果您只是想检查两个字符串是否相等,那么您的字符串比较:

如果问题\文本==复选框\文本。。。 应该没问题

我需要更多地了解您的代码以提供更多帮助,尤其是因为我对jQuery不太熟悉。但我要做的是检查以确保两个变量都是字符串

我还觉得您应该能够在不使用jQuery的情况下完成这项工作。我会这样做:

项目1

项目2

然后有:

可变项目=[ 项目1, 项目2 ]; var-valid=false; var x; 虽然valid{//此循环仅强制有效输入。 x=输入//或您希望以何种方式处理用户输入。 如果项目为.includex{ 有效=真; } } 对于项目中的项目{ 如果x==项目{ document.getElementByIditem.checked=true; } }
这很烦人,因为它迫使您将所有ID放入一个数组中,但这很简单,而且有效。

所有-答案涉及到您所说的一些内容,但简而言之,这里有一个诀窍:

使用typeof确定每个实际上都是一个字符串。 使用.length确定每个字符串不完全相同的原因。n
使用.trim使其长度相同->>>这解决了我的问题请在可运行的堆栈片段中发布-我们看不到您的数据是什么,或者您的$EOCQ_OCcount从这里回显了什么。您被出于某种原因禁止提问。你应该从中吸取教训。请阅读-您没有提供任何复制问题的功能。您是否可以尝试记录问题文本和复选框测试的值,以便在比较之前查看它们的值?这样,您至少可以自己确认实际比较的值是什么,并且它可能会提示您从何处开始???复选框是否为文本返回值?您可能必须使用val或attrvalue。您确定字符串相同吗?请注意,hello和hello以及hello都是不同的。空白很重要,这包括HTML中的换行符和制表符。我也有类似的想法,我喜欢你的想法。我无法在这里格式化,但我尝试了你的建议,仍然没有得到任何比较。这是我的新代码,充满了注释掉的代码,以及说明我尝试过的其他事情的文档。希望这行得通,我的第一个朋友-
checkbox_text = jQuery('#ocCheckBox' + i).text();
if(question_text == checkbox_text) { ... THIS is where it does not compare the strings properly.