我进行jQuery get调用以获取html片段并根据该数据进行一些处理
$.get($('.more a').attr('href'), function (data) {
var $data = $(data);
// other code using $data
});
此处,'数据'是
<div class="topDiv"> Data goes here </div>
但$ data显示为
<div class="topDiv"> </div>
仅显示html标记,而内部文本则不显示。 IE有同样的问题(?)。但是,Firefox正确解析它。
当我发出警报($(数据).html())时,Firefox会显示带有正确html的警报,而Chrome和IE会显示缺少的文本。
由于我在localhost上运行我的项目,我无法提供html片段的URL。我使用asp.net ashx处理程序来提供html片段。基本上,当我们向处理程序发布请求时,它会根据传递给它的查询字符串参数返回一个html片段。
String content = "<html> <head> </head> <body>"+
"<div class="topDiv"> Data goes here </div>"+
"</body></html>";
context.Response.ContentType = "text/html";
context.Response.Write(content);
已解决
正如答案中所提到的,'html'片段形式不佳。 Firefox 3似乎接受了它,而Firefox 4,Chrome和IE则没有。
答案 0 :(得分:0)
我怀疑这是因为<div>text</div>
本身并不是真正有效的html文档。 IIRC,div只应包含块级元素。文字应该在p,a等内。因此,IE和Chrome正在根据DOM标准查杀文本,Firefox正在让它飞起来。告诉jQuery你得到的数据类型是“text”,然后使用html(textData)将内容插入你的div中。
EG:
$.ajax($('.more a').attr('href'), {
dataType: 'text'
}).done(text) {
$('container selector').html(text);
});
答案 1 :(得分:0)
这是怎么回事:
String content = "<html> <head> </head> <body>"+
"<div class="topDiv"> Data goes here </div>"+
"</body></html>";
用未转义的引号编译?如果你修好了,你应该摇摆不定。