在jQuery中除了通过全局函数getJSON获取JSON格式文件内容外,还可以通过全局函数getScript()获取js文件内容。
其实获取js内容的方法有很多例如:
<script type="text/javascript" src="Jscript/xx.js"></script>
动态设置代码:
$("<script type='text/javascript' src='Jscript/xx.js' />").appendTo("head");
这样的调用的方法不是最理想的,在jQuery中,通过全局函数getScript()加载JS文件后,不仅可以像加载页面片段一样轻松地注入脚本,而且所注入的脚本会自动执行,大大的提高了页面的执行效率。函数getScript()的调用方法如下所示:
$.getScript(url,[callback])
参数url为等待加载的JS文件,可选项[callback]参数表示加载成功时执行的回调函数。
示例通过使用全局函数getScript()实现异步获取数据
(1)功能描述
创建一个UserInfo,js文件,在该文件中以数组的方式保存人员资料信息,然后通过$.each()方法遍历各元素,将每次遍历元素的内容以叠加的方式保存至变量strHTML,并将该变量的值作为ID号为"divTip"元素的内容显示在页面中。另外,新建一个页面,在该页面中单击“获取数据”按钮打开UserInfo.js文件。
(2)实现代码
<script type="text/javascript" src="Jscript/jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("Button1").click(function(){ //按钮单击事件
$.getScript("UserInfo.js"); //打开已获取返回数据的文件
})
})
</script>
另外,新建一个JS文件UserInfo.js,该文件的代码内容如下所示:
var data = [
{
"name": "tgr"
"sex": "man"
"email": "tao_guo_rong@163.com"
},
{
"name": "ljz"
"sex": "woman"
"email": "xiaoli@163.com"
}
];
var strHTML = ""; //初始化保存内容变量
$.each(data , function(){ //遍历获取数据
strHTML += "姓名:" + this ["name"] + "<br>";
strHTML += "性别:" + this ["sex"] + "<br>";
strHTML += "邮箱:" + this ["email"] + "<hr>";
})
$("#divTip").html(strHTML); //显示处理后的数据
代码分析:
与所有全局代码函数一样,getScript()也有一个回调函数,该回调函数在文件加载成功后执行,如代码“$.getScript('UserInfo.js',function(){alert("加载成功!");});”表示在文件加载成功后,将弹出一个内容是“加载成功”的窗口。