它在另一个函数中嵌套后不会输出文本

Its not outputting text after nesting it inside another function

本文关键字:输出 文本 嵌套 另一个 函数      更新时间:2023-09-26

我遇到了一个愚蠢的错误,我不知道为什么会发生。

基本上,我从AJAX代码"表PAGES存在"中得到返回,如果我把它放在声明var response = data;之后,我可以将其输出到<p>标记,但不知何故,当它在functionResponse的if语句中时,它不会输出任何内容。

有人能告诉我为什么吗?我传错变量了吗?

   $(document).ready(function(){

        function functionResponse (response){
            if (response == "The table PAGES exists"){
                $("p").html(response);

            } 
            } // close of functionResponse      
$("#iForm").submit( function(event){
    event.preventDefault();
    var user = $("input[name=username]").val();
    var password = $("input[name=password]").val();
    var dbName = $("input[name=dbName]").val();
    var server = $("input[name=server]").val(); 

        $.get("1.php", {username: user, password: password, dbName: dbName, server: server },function(data){
            var response = data;            

            functionResponse (response);
                        }) // close of .get

    })
})

由于修剪是按照我的建议进行的,我将其作为答案输入,并给出以下解释。

get函数的返回处理程序能够将值分配给p标记,因为分配不关心空白,尤其是分配html,浏览器只会忽略所有多余的空白。

它不是把它传递给一个使它崩溃的函数,而是字符串比较。浏览器可能不关心HTML中的空白,但JavaScript在进行字符串比较时非常关心空白。

文本

"This is some text"

"    This is some text    "

将在浏览器渲染它们时显示相同,因为重复的空格将被忽略。但只要看一下它们,你就会发现它们不是同一根绳子。Javascript不会忽略引导和跟踪刺痛的空白,除非你通过修剪它来告诉它

用"var"初始化变量只会使其在该范围内可读,因此您试图向下调用另一个范围时,要么将var移到submit之外,要么去掉"var",使其全局化。