jQuery 数据属性显示和隐藏
jQuery data attribute show and hide
在我的网页中,我有以下菜单链接:
<li class="menu1"><a data-menu="#breakfast">Breakfast</a></li>
<li class="menu2"><a data-menu="#lunch">Lunch</a></li>
<div class="row menu-row" id="breakfast"></div>
<div class="row menu-row" id="lunch"></div>
我需要找到带有 #breakfast
的 div 并显示它。这是我尝试过的:
$('.menu-menu li a').click(function () {
$('.menu-menu li').removeClass('active');
$('#menu .menu-row').hide(); // hide all
$(this).attr("data-id").show; //how to find and show the matching div?
});
我怎样才能使这个工作?
首先,您可以使用 data()
检索数据属性,因为它更快。这将为您 return 一个字符串,您可以将其放入选择器以获取所需的元素:
$('.menu-menu li a').click(function () {
$('.menu-menu li').removeClass('active');
$('#menu .menu-row').hide();
$($(this).data('menu')).show();
});
鉴于您的 HTML,您似乎希望从单击的项目中检索 data-menu
值,而不是 data-id
。另请注意,您错过了 show()
调用的尾随括号。
在我的网页中,我有以下菜单链接:
<li class="menu1"><a data-menu="#breakfast">Breakfast</a></li>
<li class="menu2"><a data-menu="#lunch">Lunch</a></li>
<div class="row menu-row" id="breakfast"></div>
<div class="row menu-row" id="lunch"></div>
我需要找到带有 #breakfast
的 div 并显示它。这是我尝试过的:
$('.menu-menu li a').click(function () {
$('.menu-menu li').removeClass('active');
$('#menu .menu-row').hide(); // hide all
$(this).attr("data-id").show; //how to find and show the matching div?
});
我怎样才能使这个工作?
首先,您可以使用 data()
检索数据属性,因为它更快。这将为您 return 一个字符串,您可以将其放入选择器以获取所需的元素:
$('.menu-menu li a').click(function () {
$('.menu-menu li').removeClass('active');
$('#menu .menu-row').hide();
$($(this).data('menu')).show();
});
鉴于您的 HTML,您似乎希望从单击的项目中检索 data-menu
值,而不是 data-id
。另请注意,您错过了 show()
调用的尾随括号。