Javascript Jquery获取列表元素的id并基于单击调用函数
基于单击列表元素(我将其ID设置为与对象相同),我想调用一个函数(在本例中,只需打印该对象)。我不想将onclick附加到每个列表项。我想要这样的东西Javascript Jquery获取列表元素的id并基于单击调用函数,javascript,jquery,html,Javascript,Jquery,Html,基于单击列表元素(我将其ID设置为与对象相同),我想调用一个函数(在本例中,只需打印该对象)。我不想将onclick附加到每个列表项。我想要这样的东西 $('#li.menu').click(function(){ $('li').each(function(){ var id= $(this).attr('id'); } //when the id is clicked, see the object and if it's there and call prin
$('#li.menu').click(function(){
$('li').each(function(){
var id= $(this).attr('id');
}
//when the id is clicked, see the object and if it's there and call print on it)
});
//sample function:
function print(x){
console.log(x);
}
Var myObject = {
obj1:{ JSON here},
obj2:{ JSON here }
}
-
-
事件委派,使用正确的选择器、括号语法和正确的大小写执行:
//它是'var',而不是'var'——在JavaScript中大小写很重要
var myObject={
obj1:{foo:“我是obj1”},
obj2:{foo:“我是obj2”}
};
//事件委派:钩子单击#菜单,仅当
//单击通过一个'a'元素
$('#菜单')。在(“单击”,“a”,函数()上){
//VVV——单击的元素的id
打印(myObject[this.id]);
//括号--^-------^
});
功能打印(x){
控制台日志(x);
}
-
-
事件委派,使用正确的选择器、括号语法和正确的大小写执行:
//它是'var',而不是'var'——在JavaScript中大小写很重要
var myObject={
obj1:{foo:“我是obj1”},
obj2:{foo:“我是obj2”}
};
//事件委派:钩子单击#菜单,仅当
//单击通过一个'a'元素
$('#菜单')。在(“单击”,“a”,函数()上){
//VVV——单击的元素的id
打印(myObject[this.id]);
//括号--^-------^
});
功能打印(x){
控制台日志(x);
}
-
-
myObject.id的值是多少?对象既没有id属性,也没有LI元素。您的预期行为是什么?我的意思是调用函数print,并传入单击的任何id(对应对象),但您意识到您的选择器#li。菜单
不匹配任何内容,并且您的li中仍然没有任何id,也没有任何对象myObject
。这很令人困惑,不是吗?!注意:您所说的“JSON here”可能是指“object initializer here”或“data here”或类似内容。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就没有处理JSON。myObject.id
的值是多少?您的对象既没有id属性,也没有LI元素。您的预期行为是什么?我的意思是调用函数print,并传入单击的任何id(对应对象),但您意识到您的选择器#li。菜单
不匹配任何内容,并且您的li中仍然没有任何id,也没有任何对象myObject
。这很令人困惑,不是吗?!注意:您所说的“JSON here”可能是指“object initializer here”或“data here”或类似内容。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。谢谢您的解释!那么,我使用的“on”和“click”有什么区别呢?。click(function()…)
是的缩写。on(“click”,function()…)
。但我在上面使用的带有选择器的表单没有事件委托。请参阅上面代码中的注释,以及。感谢您的解释!那么,我使用的“on”和“click”有什么区别呢?。click(function()…)
是的缩写。on(“click”,function()…)
。但我在上面使用的带有选择器的表单没有事件委托。请参见上面代码中的注释,以及。
<!-- Bootstrap Simple Sidebar: Sidebar -->
<div id="sidebar-wrapper">
<ul class="sidebar-nav" id="menu">
<li>
<a id="obj1" href="#repo">Repository </a>
</li>
<li>
<a id="obj2" href="#config">Configuration</a>
</li>
</ul>
</div>