【问题标题】:How to get the id of previous ul如何获取前一个ul的id
【发布时间】:2022-01-24 18:44:27
【问题描述】:

我有一个包含 4 个单独列表的 div,我需要在单击之前知道列表的 ID。

假设我点击 ul2 我需要 ul1 id 的警报。

目前我正在获取点击的 ID:

  var clicked_id = this.id;

我尝试了以下方法来获得上述 ul

  var div_id2 = $(this).parents(".divtest").next(".ultest").attr("id");
  var div_id = $(this).closest('ul').find('.ultest').attr('id');
  var x = $(this).prev().attr('id');

布局简化:

  <div id="doesnt matter" class="divtest">
    <ul id="ul1" class="ultest">
      <li id="doesnt matter"></li>
      <li></li>
      <li></li>
    </ul>
    <ul id="ul2" class="ultest">
      <li></li>
      <li></li>
      <li></li>
    </ul>
    <ul id="ul3" class="ultest">
      <li></li>
      <li></li>
      <li></li>
    </ul>
    <ul id="ul4" class="ultest">
      <li></li>
      <li></li>
      <li></li>
    </ul>
  </div>

【问题讨论】:

  • 你为什么想要那个?如果你点击第一个呢?只是出于好奇,你在建造什么?

标签: javascript jquery


【解决方案1】:

使用jQuery.prev:

$('ul').click(function() {
  let prev = $(this).prev('ul')
  console.log(prev.attr('id'))
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="doesnt matter" class="divtest">
  <ul id="ul1" class="ultest">
    <li id="doesnt matter">item</li>
    <li>item</li>
    <li>item</li>
  </ul>
  <ul id="ul2" class="ultest">
    <li>item</li>
    <li>item</li>
    <li>item</li>
  </ul>
  <ul id="ul3" class="ultest">
    <li>item</li>
    <li>item</li>
    <li>item</li>
  </ul>
  <ul id="ul4" class="ultest">
    <li>item</li>
    <li>item</li>
    <li>item</li>
  </ul>
</div>

【讨论】:

  • 这样做我会得到未定义的结果,如果我只打印 prev 对象,我会得到 jQuery.fn.init [prevObject: jQuery.fn.init(1)]
  • @RathBaloth 如果单击第一个列表,您会得到未定义(因为没有其他先前的列表)
  • 您的建议似乎是从 li 获取 ul 的 id,我对 li 不感兴趣。我想单击 ul 上的任意位置并获取其上方 ul 的 id。这就是我变得不确定的原因。我必须 console.log(prev.prevObject.attr('id')) 让它显示 id,在我的情况下,如果 div
  • @RathBaloth 我已经更新了我的答案。它现在应该可以工作了。
  • 哦,对不起,我显然完全误解了我什至想做什么。我确实想要以前的 li 而不是 ul。重写了这么多次让我偏离了轨道。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-02
  • 2014-08-30
  • 2014-12-11
相关资源
最近更新 更多