jQuery中$.fn.load方法中url带空格导致不能正常加载页面

今天同事碰到一奇怪现象,使用$('#....').load(url);加载一个页面,死活加载不出来,一直显示空白,而加载其他页面时显示是正常的,我帮他解决问题,好一通折腾,最终发现是因为url中带了一个空格,把空格去掉就能正常显示,加上空格就显示空白,最后查了一下jquery的api,发现load方法中的url里,空格是关键字,空格后面的字符串是选择器,用来选择加载页面中的元素,所以才出现页面上空白的情况,希望以后使用load方法时多做注意。

引用一下jquery的api文档:

加载页面片段

.load() 方法,与 $.get() 不同,允许我们规定要插入的远程文档的某个部分。这一点是通过 url 参数的特殊语法实现的。如果该字符串中包含一个或多个空格,紧接第一个空格的字符串则是决定所加载内容的 jQuery 选择器。

我们可以修改上面的例子,这样就可以使用所获得文档的某部分:

$("#result").load("ajax/test.html #container");

如果执行该方法,则会取回 ajax/test.html 的内容,不过然后,jQuery 会解析被返回的文档,来查找带有容器 ID 的元素。该元素,连同其内容,会被插入带有结果 ID 的元素中,所取回文档的其余部分会被丢弃。

相关推荐