匹配元素';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];