Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
Php ajax数据源上的jquery getElementById_Php_Jquery_Ajax_Xmlhttprequest_Clean Urls - Fatal编程技术网

Php ajax数据源上的jquery getElementById

Php ajax数据源上的jquery getElementById,php,jquery,ajax,xmlhttprequest,clean-urls,Php,Jquery,Ajax,Xmlhttprequest,Clean Urls,我在javascript中得到了一个函数,该函数首先检查用户名是否为所需长度,然后将用户名发送到页面进行测试。如果测试成功,则会出现错误 true 其他的 false function(data){ alert( "Data Loaded: " + $('#username', data).html() ); }); 我一直收到一个错误,返回数据上不存在getElementById function checkuser(user, wd,id, sub)

我在javascript中得到了一个函数,该函数首先检查用户名是否为所需长度,然后将用户名发送到页面进行测试。如果测试成功,则会出现错误
true
其他的
false

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
我一直收到一个错误,返回数据上不存在getElementById

  function checkuser(user, wd,id, sub)
    {
        if(user.length < 7)
        {
            document.getElementById(id).innerHTML = "Your username is too short. It must be longer than 6 charaters";
            document.getElementById(sub).disabled = true;
            return false;
        } else {
            $.post(wd + "register/checkuser/" + user,
                       function(data){
                         alert("Data Loaded: " + data.getElementById('username').innerHTML;
                       });
        }
    }
   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
功能检查用户(用户、wd、id、sub)
{
如果(用户长度<7)
{
document.getElementById(id).innerHTML=“您的用户名太短,必须超过6个字符”;
document.getElementById(sub.disabled=true;
返回false;
}否则{
$.post(wd+“注册/检查用户/”+用户,
功能(数据){
警报(“数据加载:”+Data.getElementById('username').innerHTML;
});
}
}

数据返回值是一个字符串,而不是DOMDocument-因此它没有getElementById成员函数

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
更好的办法是让您的测试页面返回JSON,并对其进行解析

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
如果无法更改执行测试/返回的页面,则需要找到另一种方法来解析符合您目的的返回字符串。

您必须执行以下操作:

function checkuser(user, wd, id, sub) {
  if(user.length < 7) {
    $("#"+id).html("Your username is too short. It must be longer than 6 characters");
    $("#"+sub).attr("disabled", true);
    return false;
  }
  else {
    $.post(
      wd + "register/checkuser/" + user,
      function(data){
        alert("Data Loaded: " + $(data).find("#username").html());
      }
    );
  }
}
   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
功能检查用户(用户、wd、id、sub){
如果(用户长度<7){
$(“#”+id).html(“您的用户名太短,必须超过6个字符”);
$(“#”+sub).attr(“禁用”,真);
返回false;
}
否则{
美元邮政(
wd+“注册/检查用户/”+用户,
功能(数据){
警报(“加载的数据:+$(数据).find(#username”).html();
}
);
}
}

试试这个:

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
或者,这取决于返回的HTML的结构:

   function(data){
       alert( "Data Loaded: " + $('#username', data).html() );
   });
   function(data){
       alert( "Data Loaded: " + $(data).filter('#username').html() );
   });

您的data.getElementById()是否出现错误?将,
data.getElementById('username').innerHTML;
更改为
document.getElementById('username')).innerHTML=data;
Read@Amber's comment!
data
并不总是一个字符串,是吗?这取决于响应的类型以及您是否设置了
dataType
:如果响应是HTML,那么它将是一个字符串,而JSON绝对是这种响应的方式。但无论哪种方式,它都是字符串或JSON数据,但我仍然喜欢sn不在DOM中,也不会有getElementById()&Marc:我现在不能方便地尝试它,但是如果您检索XML(或设置
数据类型
),您不会得到包含XML文档的DOMDocument吗?(尝试使用JSBin失败,但这似乎是文档建议的。)同样,这是一个侧重点,完全同意Amber的观点,JSON是最好的方式。