Javascript 如何使用包含下划线的变量访问对象属性
我试图使用包含下划线的变量访问对象属性,但是,它的给定错误uncaughtreferenceerror:topic_u未定义。我确实研究了这个问题以寻求解决方案,但它不起作用Javascript 如何使用包含下划线的变量访问对象属性,javascript,jquery,Javascript,Jquery,我试图使用包含下划线的变量访问对象属性,但是,它的给定错误uncaughtreferenceerror:topic_u未定义。我确实研究了这个问题以寻求解决方案,但它不起作用 var topics_page_no = { topic_1: [2,3,4], topic_2: [5,6,7] } /* Navigate to particular topic's first page based on selection */ $(document).on('click', '.
var topics_page_no = {
topic_1: [2,3,4],
topic_2: [5,6,7]
}
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function(){
var topic_id = $(this).data('topic-id');
console.log(topics_page_no.topic_[topic_id][0] + ".html");
});
预期输出:2.html/5.html您可以这样尝试:
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function () {
var topic_id = $(this).data('topic-id');
console.log(topics_page_no["topic_" + [topic_id]][0] + ".html");
});
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function () {
var topic_id = $(this).data('topic-id');
console.log(topics_page_no["topic_" + [topic_id]][0] + ".html");
});
您需要使用括号表示法和给出完整变量名的字符串。topics\u page\u no。topic\u[topic\u id]在topics\u page\u no上查找一个名为topic\u的属性,然后尝试查找与topic\u id匹配的属性。相反,您希望将topic\u与topic\u id合并,形成要在topics\u page\u no上查找的属性的完整名称: 因此:
可以使用如下括号表示法:
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function () {
var topic_id = $(this).data('topic-id');
console.log(topics_page_no["topic_" + [topic_id]][0] + ".html");
});
/* Navigate to particular topic's first page based on selection */
$(document).on('click', '.topic-menu-dropdown-item', function () {
var topic_id = $(this).data('topic-id');
console.log(topics_page_no["topic_" + [topic_id]][0] + ".html");
});