我的问题是在我的ajax回调中,当我将查询的上下文设置为我的ajax调用的返回html时,它找不到任何元素。
一些调查结果:
不幸的是,我无法控制生成的html,因为它是由SharePoint生成的。
我已将此问题隔离开来并创建了a simple test page供您查看。
答案 0 :(得分:4)
问题在于jQuery如何实例化传递给它的html,可能缺少一个良好的跨浏览器字符串到dom解析技术(例如Mozilla上的createContextualFragment)。
具体来说,jQuery的clean函数中有两个正则必须修复:
857: var match = /^<(\w+)\s*\/?>$/.exec(elems[0]);
874: elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
这两个都无法处理名称中带冒号的标签。
修复:
857: var match = /^<([\w:]+)\s*\/?>$/.exec(elems[0]);
874: elem = elem.replace(/(<([\w:]+)[^>]*?)\/>/g, function(all, front, tag){
答案 1 :(得分:0)
从我的理解你可能想尝试“url语法中的选择器”来重新加载页面的特定部分
$("#somediv").load(location.href + " #somediv");
加上,添加一个随机参数以避免缓存问题:
$("#somediv").load(location.href + "?r=" + Math.random() + " #somediv");
答案 2 :(得分:0)
我在firefox中看不到任何内容,那是因为 你代码中的这一位是错误的:
google.load("jquery", "1.2.6"); //ok
google.setOnLoadCallback(function() { //ok
$(document).ready(function() //not ok, can't be sure if will fire
{
// great stuff here
}
);
});
请参阅this以获得澄清,当调用来自谷歌的LoadCallback时,文件可能已经(实际上在Firefox中)已经被重命了。
如果你能纠正那一点,我们可以用firebug进一步调查它,看看剧本在哪里经纪。