匹配元素';JavaScript中数组名的s属性

匹配元素';JavaScript中数组名的s属性,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我正在处理一个包含多个列表的页面: <ul class="policies" id="p-1"> <li><a href="p_1_1">Foo</a></li> <li><a href="p_1_2">Foo2</a></li> </ul> <ul class="policies" id="p-2"> <li><a href="p_2

我正在处理一个包含多个列表的页面:

<ul class="policies" id="p-1">
  <li><a href="p_1_1">Foo</a></li>
  <li><a href="p_1_2">Foo2</a></li>
</ul>
<ul class="policies" id="p-2">
  <li><a href="p_2_1">Foo</a></li>
  <li><a href="p_2_2">Foo2</a></li>
</ul>
每当用户单击其中一个列表项时,我都在使用JavaScript/jQuery将动态数量的图像附加到一个空div中。图像的来源将取自数组项:

$('li a').on('click', function(e) {
  e.preventDefault();
  var useArray = $(this).attr('href').toString();
} );

for ( var i=0; i < array.length; i++ ) {
  $('div').append('<img src="'+ array[i] +'" />');
}
$('li a')。在('click',函数(e){
e、 预防默认值();
var useArray=$(this.attr('href').toString();
} );
对于(var i=0;i

我的问题是,如何将
href
属性与正确的数组名称匹配以输出正确的项目集?例如,当用户单击
时,我需要从数组
p\u 1\u 1
输出项目。我在JavaScript中使用数组的经验非常有限,非常感谢您在这方面提供的帮助。

不要使用单独的数组,而是使用字符串作为键将它们封装在一个对象中:

var myStuff = {
    p_1_1 : ['ab', 'az', 'tx', 'wz'],
    p_1_2 : ['av', 'bq', 'cf', 'ts']
};
现在,您可以使用以下工具轻松检索它们:

var foo = myStuff["p_1_1"];
或者在您的代码中:

var useArray = $(this).attr('href').toString();
var array = myStuff[useArray];

window[useArray]
如果它在全局范围内,但是您最好使用对象和键。非常感谢!我曾尝试使用
窗口[useArray]
,它只返回
未定义的
,但没有正确理解对象和键。
var useArray = $(this).attr('href').toString();
var array = myStuff[useArray];