javascript - 使用 jquery 如何获取父 LI,其中 LI 的文本与我的按钮文本相匹配?

标签 javascript jquery html

当我单击按钮时,我想从列表中获取 li,然后触发一个事件,就像单击 li 本身一样。换句话说,我正在尝试从按钮触发菜单上的单击事件。

下面的代码返回文档对象而不是父 LI。

写在这里:https://codepen.io/GerdSuhr/pen/WKZLYQ?editors=1011

$('#switch button').on('click', function(){
  var text  = $(this).text();
  var myLI = $('dl-menu li a span:contains(text)').parent().parent();
  console.log(myLI);
  //$(myLI).trigger('click.dl-menu');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<ul class="dl-menu">
<li><a href=""><span>aero</span></a></li>
<li><a href=""><span>bio</span></a></li>
<li><a href=""><span>lab</span></a></li>
</ul>

<br>
<br>
<br>

<div id="switch">
  <button>bio</button>
</div>

最佳答案

你的逻辑已经差不多了,你只需要将 text 变量的值连接到选择器中,然后引发点击事件:

$('#switch button').on('click', function() {
  var text = $(this).text();
  var $myLI = $(`.dl-menu li a span:contains(${text})`).closest('li');
  $myLI.click();  
});

$('li').click(function() {
  console.log(`You clicked the ${$(this).text()} <li> element`);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<ul class="dl-menu">
  <li><a href=""><span>aero</span></a></li>
  <li><a href=""><span>bio</span></a></li>
  <li><a href=""><span>lab</span></a></li>
</ul>

<br /><br /><br />

<div id="switch">
  <button>bio</button>
</div>

另请注意,与链式 parent() 调用相比,首选使用 closest()

关于javascript - 使用 jquery 如何获取父 LI,其中 LI 的文本与我的按钮文本相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51564157/

相关文章:

javascript - 如何使此代码适用于 iPad 等触摸屏设备?

php - 如何将输入的文本转换为图像?

javascript - jqgrid 完整月份名称

javascript - 用于输入中文(ibus)的 JQuery/DOM 事件?

javascript - 如何在将元素附加到 DOM 后重新加载脚本

jquery - Bootstrap-Multiselect:如何使用 JQuery 取消选中和取消选择多选选项

html - CSS flex 布局 - 裁剪文本和缺少右边距

javascript - DataTables 通过 javascript 设置复杂的标题

javascript - 这个方法调用是如何工作的?

javascript - 任何用于 JavaScript 人脸识别的库?