在一个js文件中引用另一个js文件(此文件仅包含一个js数组),怎么实现,这种方法有没有什么问题

再看我一眼 2013-12-06 04:35:23
如题

现在需要做一个二级联动的菜单,想先用一个js文件来存放这个数组 然后再另一个写方法的页面调用这个文件和数组,应该怎么做

这种方式有没有什么问题? 有没有更好的解决办法?

数组js: arr.js

var br = new Array();

br[1] = new Array(); //身份信息
br[1][1] = "身份证明不清晰";
br[1][2] = "需补充二代身份证";
br[1][3] = "申请人有两个身份证号码(非正常升位),需补充派出所卡具的户籍证明";
br[1][4] = "身份证信息录入有误";
br[1][5] = "其他";


方法js

function htyy(obj){
//这里怎么获得br这个数组
var zhuyuanyin = $(obj).val();
var ziyuanyin_html = "";
var ziyuanyin_obj = br[zhuyuanyin];
$.each($(ziyuanyin_obj), function(i, n){
ziyuanyin_html += "<option value='"+i+"'>"+n+"</option>";
});
$("select[name='htyy_2']").html(ziyuanyin_html);
}

...全文
800 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2013-12-07
  • 打赏
  • 举报
回复
在你的代码中,我们看到了非原生 js 的元素 $ 权且当做你引入了 jquery 框架吧 而 jquery 已经提供了动态加载 js 文件的功能 见 http://www.w3school.com.cn/jquery/ajax_getscript.asp 如果不是 jquery 框架,也完全可以通过原生的 js 实现 设一个带有 id 的script 标记 在程序中动态修改它的 src 属性就可完成 js 文件的动态加载 不过这个加载过程是异步的,你需要做些处理以确定 js 文件已加载完成了 当然你也可以采用 #6 的动态加入 script 节点的方法。 但估计你看不懂
hch126163 2013-12-07
  • 打赏
  • 举报
回复
// 动态导入js function include(src,encoding,fun) { var s = document.createElement('script'); s.type='text/javascript'; s.charset=encoding; //'gb2312'; s.src = src; var tags =document.getElementsByTagName('head'); if(typeof(fun)=='function'){ if( document.all ){ s.onreadystatechange = function(){ if(/(complete|loaded)/.test(this.readyState)){ fun(); s.onreadystatechange = null; s.parentNode.removeChild(s); }}; }else{ s.onload = function(){ fun(); s.onload = null; s.parentNode.removeChild(s); }; } } tags[0].appendChild(s); };
zhjdg 2013-12-06
  • 打赏
  • 举报
回复
	<script>
	var flag=false;
	var loading = false;
	var error = false;
	var time = null;
	function success(){
		flag=true;
		loading = 'over';
		
	};
	function error(){
		error=true;
	}
	function getData(){
		$.ajax({
			  url: 'arr.js',
			  dataType: "script",
			  success: success,
			  error : error
			});
	}
	
	
	function htyy(obj){
		if(!flag){
			if(error){
				alert('error');
				return;
			}
			if(loading){
				if(loading == 'over'){
					clearInterval(time);
				}
				return;
			}else{
				loading = true;
				getData();
				time = setInterval(jQuery.proxy(htyy,null,obj),500);
				return;
			}
		}else{
			clearInterval(time);
		}
		
		var $a = br;
		var $b = obj;
		
	    /*  
	    var zhuyuanyin = $(obj).val();
	    var ziyuanyin_html = "";
	    var ziyuanyin_obj = br[zhuyuanyin];
	    $.each($(ziyuanyin_obj), function(i, n){
	        ziyuanyin_html += "<option value='"+i+"'>"+n+"</option>";
	    });
	    $("select[name='htyy_2']").html(ziyuanyin_html);
		*/
	}
	htyy({name:'j',addr:'t'});
	
	</script>
  • 打赏
  • 举报
回复
a.js,你的数组文件 b.js
document.write ('<script src="a.js"></script>')
//注意使用a.js数组的代码要放到window.onload中,动态输出的script不会挂起本js文件后续代码的执行
window.onload=function(){
  //your code use a.js array
}
再看我一眼 2013-12-06
  • 打赏
  • 举报
回复
感谢楼上两位的回复 这两种方式都可以,我现在就是在一个文件里边写的 但是还是想要把他们分开,并且不在这个特定的html页面同时引入 所以还是需要在这个JS内或者这个js方法内引入 求方法
别闹腰不好 2013-12-06
  • 打赏
  • 举报
回复
同时引入就行
Null_Reference 2013-12-06
  • 打赏
  • 举报
回复
就跟一个文件里面一样写,只是要注意引用文件的先后顺序就行了。

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧