好吧,这真的让我感到很沮丧,因为我之前已经完成了这一百次,而这次它没有用.所以我知道我做错了什么,我只是想不出来.
我正在使用jQuery .get例程从另一个文件加载html.我不想使用.load(),因为它总是替换我正在加载内容的元素的子元素.
这是我的.get请求:
$(document).ready(function() {
$.get('info.html', {}, function(html) {
// debug code
console.log($(html).find('ul').html());
// end debug code
});
});
Run Code Online (Sandbox Code Playgroud)
文件'info.html'是一个带有正确doctype的标准xhtml文件,正文中唯一的东西是我需要访问的一系列ul.出于某种原因,find函数给我一个空值.
在firebug中,GET请求显示正确的RESPONSE文本以及何时运行
console.log(html);
Run Code Online (Sandbox Code Playgroud)
而不是当前的console.log行,我将整个info.html作为输出,就像我期望的那样.
有任何想法吗?
Sam*_*son 10
您无法获取整个XHTML文档.您只能处理<body>
html文档中存在的标记.令人沮丧.从info.html中删除不在您的<body>
标记内的所有内容并再次尝试.
此问题还有其他可能的解决方法 - 请在此响应的基础上查看下面的"Stackoverflow相关项".
来自Doc:(http://docs.jquery.com/Core/jQuery#htmlownerDocument)
"HTML字符串不能包含div中无效的元素,例如html,head,body或title元素. "
我知道这是一个很老的帖子,但是我已经有了几个小时的确定同样令人沮丧的问题,并找到了解决方案.对我来说,实际工作的是将html内容包装为表单标签.
所以有以下html源:
<html>
<head>
<body>
<form>
<div id="content">Some Stuff</div>
</form>
</body>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)
有了这个jquery片段应该工作:
var callback = function (data) {
alert($("#content", $(data)).html());
};
$.get(url, null, callback, null);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助...
我发现这是非常干净的解决方案:
var elementInResponse = $("<div>").html(responseText).find(selector);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
39915 次 |
最近记录: |