我在一个单独的文件array_wsd01.js中有一个js数组,我想要jquery ui对话框代码来访问它的元素。文件内容为:
var E2tw.arrayWsd01 =
[["text01", "audio01"],
["text02", "audio02"],
...
["text10", "audio10"]];
和对话框代码:
jQuery(document).ready(function() {
jQuery("div#ws_dialog").dialog({
autoOpen: false,
modal: true,
resizable: false,
draggable: false
});
jQuery(".ui-dialog-titlebar").removeClass('ui-widget-header');
jQuery("span.ws_dialog_icon").on("click",function(evnt) {
jQuery("div#ws_dialog").dialog("open");
evnt.stopPropagation();
jQuery("div#wsd_text").text(E2tw.arrayWsd01[0][0]);
});
});
这不显示E2tw.arrayWsd01 [0] [0]的值,而显示诸如“Hi,there”之类的字符串。 Firebug显示正在加载array_wsd01.js。我做错了什么?
答案 0 :(得分:0)
var E2tw.arrayWsd01 =
语法无效。您应该看到语法错误。只要您有语法错误,就无法评估代码。
假设文件确实已加载,请将其更改为
var E2tw = {
arrayWsd01: [["text01", "audio01"], ...]
};
应该解决问题。这声明了一个具有属性arrayWsd01
的对象,可以作为E2tw.arrayWsd01
访问(就像您已经这样做了)。当然,如果这是唯一的属性,那么根本不使用对象是没有意义的。
答案 1 :(得分:0)
你的文件应该是这样的
A.js
var E2tw = [["text01", "audio01"],["text02", "audio02"],
...
["text10", "audio10"]];
在其他档案中使用
B.html
<script src="A.js"></script>
<script>
function(){
alert(E2tw[0]);//you can use directly as variable.
}
</script>
答案 2 :(得分:0)
变化
var E2tw.arrayWsd01 =
[["text01", "audio01"],
["text02", "audio02"],
...
["text10", "audio10"]];
到
E2tw.arrayWsd01 =
[["text01", "audio01"],
["text02", "audio02"],
...
["text10", "audio10"]];
为E2tw的属性赋值不需要“var”。
我强烈建议您将来使用JSLint来检查JavaScript代码。它非常适合捕捉这样的问题: - )