我有html代码:
<div class="top-menu">
<div class="dropdown dropdown-inline">
<a class="btn btn-primary dropdown-toggle" id="info" data-hover="dropdown" data-animations="zoomIn zoomIn zoomIn zoomIn" aria-expanded="false" >INFO</a>
</div>
<div class="dropdown dropdown-inline">
<a class="btn btn-primary dropdown-toggle" data-hover="dropdown" data-animations="zoomIn zoomIn zoomIn zoomIn" aria-expanded="false">MAINITEM <span class="carot"></span></a>
<ul class="dropdown-menu dropdownhover-bottom" role="menu">
<li><a>A</a></li>
<li><a>B</a></li>
<li><a>C</a></li>
</ul>
</div>
当我单击li元素(A,B或C)以获取MAINITEM的值时,我需要。我在页面上有大约10个主要项目,需要获得价值的象征。
我尝试使用:
$("a.btn.btn-primary.dropdown-toggle, ul.dropdown-menu.dropdownhover-bottom li a").on('click', function () {
alert($(this).closest('.dropdown-toggle').find('a').text());
})
但是我得到的结果是空的。
答案 0 :(得分:2)
jQuery.closest()
函数仅过滤父元素。由于要组合两个不同的选择器,因此两个目标元素都应使用公共父级。在您的情况下,共同的父母是.dropdown
。
另外,您需要确保通过正确的a
元素进行过滤,因为.dropdown
可以具有许多锚标记。您可以使用a.btn
。
下面是一个工作示例,上面有建议的更改。
$("a.btn.btn-primary.dropdown-toggle, ul.dropdown-menu.dropdownhover-bottom li a").on('click', function(e) {
alert($(this).closest('.dropdown').find('a.btn').text());
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="top-menu">
<div class="dropdown dropdown-inline">
<a class="btn btn-primary dropdown-toggle" id="info" data-hover="dropdown" data-animations="zoomIn zoomIn zoomIn zoomIn" aria-expanded="false">INFO</a>
</div>
<div class="dropdown dropdown-inline">
<a class="btn btn-primary dropdown-toggle" data-hover="dropdown" data-animations="zoomIn zoomIn zoomIn zoomIn" aria-expanded="false">MAINITEM <span class="carot"></span></a>
<ul class="dropdown-menu dropdownhover-bottom" role="menu">
<li><a>A</a></li>
<li><a>B</a></li>
<li><a>C</a></li>
</ul>
</div>
答案 1 :(得分:1)
使用此
jQuery(".dropdown li a").click(function(){
text = jQuery(this).closest(".dropdown").find(".dropdown-toggle").text();
console.log(text)
});