代码之家  ›  专栏  ›  技术社区  ›  joshcomley

为什么这个jquery无法加载/分析我的HTML字符串?

  •  0
  • joshcomley  · 技术社区  · 15 年前
    jQuery.get(window.location.href, function(data) {
      alert(data);
      alert($(data).html());
    });
    

    第一个弹出窗口是所有HTML的良好和健康。

    第二个弹出窗口为空。为什么?(HTML与XHTML兼容)

    4 回复  |  直到 15 年前
        1
  •  3
  •   Quentin    15 年前

    documentation :

    HTML字符串不能包含 在中无效的元素 DIV,例如HTML、HEAD、BODY或 标题元素。

    如果您正在获取一个完整的HTML文档,那么您将拥有许多可能不会出现在DIV中的元素。

        2
  •  0
  •   peirix    15 年前

    因为它将返回一个包含所有HTML的字符串。 data 不是jquery对象。

        3
  •  0
  •   Mutation Person    15 年前

    我在我的电脑上试过这个。你可以得到以下信息:

    "
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1"><title>
    
    </title><link href="App_Themes/selectors.css" rel="stylesheet" type="text/css" /></head>................etc
    

    这不会解析为jquery obejct。您需要在服务器端脚本页上,该脚本页将显式输出HTML。

    我想,如果您真的需要HTML中的一个项目,那么您可以使用内置的字符串方法将其从文本中剥离出来。

        4
  •  0
  •   pythonandchips    15 年前

    把你的代码改成这样

    $('#yourContainingDiv').html(data);
    

    数据中的HTML将放在DIV标记中