代码之家  ›  专栏  ›  技术社区  ›  Leron

使用jquery获取类中最近的前一个元素

  •  2
  • Leron  · 技术社区  · 7 年前

    我已经研究过几个非常相似的问题,但没能得到这项工作。我只有这个 DOM 结构:

    <div class="container">
      <input class="selected"/>
    
      <div class="dropdown-wrapper ae-hide">
        <div class="selectable">1</div>
        <div class="selectable">2</div>
        <div class="selectable">3</div>
      </div>
    </div>
    

    .selectable 单击时,我想更新输入的值。问题是我找不到正确的选择器来执行此操作。这是动态创建的,所以我可以有多个 html 在我的页面上有这样的片段,这就是我使用类的原因。

    这是 FIDDLE

    3 回复  |  直到 7 年前
        1
  •  2
  •   t.niese    7 年前

    prev() 是同级选择器,因此您需要在dom中与 input 元素。

    你要做的第一件事就是 closest() 用类获取祖先 dropdown-wrapper (你也可以使用 parent() 在这种情况下,如果更改dom结构,closest更灵活)。结果是,你会打电话给 prev

    $('.selectable').click(function(){
      $(this).closest('.dropdown-wrapper').prev('.selected').val('hit');
    });
    
        2
  •  1
  •   Johannes    7 年前

    js代码中倒数第二行应该是:

     $(this).parent().prev('.selected').val('hit');
    

    (您要处理上一个 起源 根据我的理解)

    https://jsfiddle.net/o7s1xgdj/

        3
  •  1
  •   Mahesh    7 年前

    找到元素的一种方法是:

    $( ".selectable" ).parent().parent().find('input').val('somevalue');
    
    
    $( ".selected" ).each(function(index) {
          $(this).on("click", function(){
           This is multiple elements have their own function
           //var somevalue = $(this).attr('id'); 
           });
          });