jquery访问其他文件中的js数组?

时间:2013-12-05 05:37:07

标签: jquery jquery-ui

我在一个单独的文件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。我做错了什么?

3 个答案:

答案 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代码。它非常适合捕捉这样的问题: - )