jquery返回null-为什么?

jquery返回null-为什么?,jquery,find,Jquery,Find,我正在使用jquery ajax$.get,它在我的服务器上调用一个php脚本,并从另一个站点(域)检索内容。这是完整的网页好的。然后我想使用.find()方法从“center”标记提取html数据,但我遇到了一些问题 $("#btnGetData").click(function(){ $.get("pgiproxy.php",{ data: $("#formdata").serialize() }, function(result) { alert($(result

我正在使用jquery ajax$.get,它在我的服务器上调用一个php脚本,并从另一个站点(域)检索内容。这是完整的网页好的。然后我想使用.find()方法从“center”标记提取html数据,但我遇到了一些问题

$("#btnGetData").click(function(){
  $.get("pgiproxy.php",{ data: $("#formdata").serialize() },
    function(result) {

      alert($(result).find('center').html()); 

      val = $(result).find('center').html();
      alert(val);

      $('#BFX').html(result);
      alert( $('#BFX').find('center').html() );  

    });
});
前两个方法都返回“null”,但当我将('result')html插入到#BFX div中时,它会在监视器上正确显示,最后一个警报工作正常,它会查找()s“center”标记并在警报中显示html数据

有人知道为什么我在尝试从返回的ajax数据“result”中“find()”找到“center”标记时返回“null”(如前2个警报中所示)

谢谢你的帮助


Nic。

此处的
结果的内容取决于响应的MIME类型,如前所述。如果
result
只是文本,那么
$()
函数将把它当作选择器。

您应该尝试以下方法:

$("#btnGetData").click(function(){
  $.get("pgiproxy.php",{ data: $("#formdata").serialize() },
    function(result) {
      var temp = $('<div/>').html(result);

      alert(temp.find('center').html()); 

      val = temp.find('center').html();
      alert(val);

      $('#BFX').html(result);
      alert( $('#BFX').find('center').html() );  

    });
});
$(“#btnGetData”)。单击(函数(){
$.get(“pgiproxy.php”,{data:$(“#formdata”).serialize()},
功能(结果){
var temp=$('').html(结果);
警报(临时查找('center').html());
val=temp.find('center').html();
警报(val);
$('#BFX').html(结果);
警报($('#BFX').find('center').html());
});
});

我不习惯jquery,但是
result.find('center').html()不应该工作?您是否转储了'result'的内容?您可以尝试将回调后的数据类型设置为'html'$。get('foo',{},function(){},'html');嗨,jAndy,我使用--alert($(result.find('center').html());--,将数据类型设置为“html”,结果仍然相同,返回null.hi vsnyc,是此方法有效。但是为什么我需要在“find('center').html()之前先将数据放入“temp”变量中呢。为什么我不能用一步法直接从“结果”中提取“中心”???因为jQuery需要遍历一个DOM对象或jQuery对象,而不是一个JSON对象,或者它的任何响应。我认为它不是DOM对象。这是执行这些操作时的方法,将响应转换为我们可以处理的元素。好的,谢谢vsync。响应来自一个PHP脚本,该脚本使用“fopen和fgets”获取网页的内容,我认为返回的只是“text”?。在“var temp=$('').html(结果)中为$('');“”只是用作占位符,用于将“结果”转换为可用的jQuery对象?是的,它只是占位符,不是DOM中的元素。嗨,这是我的php脚本中使用的代码,它返回jQuery ajax调用的结果:函数getPage($pageURL){//设置返回内容类型标头('Content-type:text/html;charset=utf-8');//获取该网站的内容$handle=fopen($pageURL,“r”);if($handle){while(!feof($handle)){$buffer=fgets($handle,4096);echo$buffer;}fclose($handle);}我假设结果只是文本???我很乐意将结果放入一个隐藏的div中,然后从'center'标记中提取数据,但直接这样做会更好。