我有几个div ...
<div id="foo"></div>
<div id="bar"></div>
每个都有一个关联的jQuery数组。例如
var foo_array = ["One", "Two", "Three"];
var bar_array = ["Four", "Five", "Six"];
我要在单击div时提醒相关数组中的第一个值。
类似这样:
$(div).on("click",function(){
$divid = $(this).attr("id");
$firstval = ????_array[0];
alert($firstval);
})
-代替????我动态地回显了$ divid的值。在PHP中很容易,但是我很困惑如何在javascript中做到这一点?
答案 0 :(得分:3)
在较大的对象中定义数组,而不是使用多个独立变量,然后可以使用属性查找:
const divArrs = {
foo: ["One", "Two", "Three"],
bar: ["Four", "Five", "Six"]
}
$('div').on("click", function() {
divid = $(this).attr("id");
const firstval = divArrs[divid][0];
console.log(firstval);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="foo">foo</div>
<div id="bar">bar</div>
当然,不需要jQuery这样的东西:
const divArrs = {
foo: ["One", "Two", "Three"],
bar: ["Four", "Five", "Six"]
};
document.querySelectorAll('div').forEach((div) => {
div.onclick = () => {
console.log(divArrs[div.id][0]);
};
});
<div id="foo">foo</div>
<div id="bar">bar</div>
答案 1 :(得分:0)
可以在var
对象中自动访问全局定义的window
变量。
var foo_array = ["One", "Two", "Three"];
var bar_array = ["Four", "Five", "Six"];
const id = "foo";
console.log(window[`${id}_array`][0]);