如何使用jQuery定位可见元素类型的最后一个

时间:2019-06-04 07:41:13

标签: javascript jquery webforms

我需要一些帮助,我有一个drupal Web表单,如果先前的文本输入包含内容,则有条件地显示新表单元素。

我想做的是选择当前可见的所有输入,然后专门针对最后一个(最近显示)。

问题是,这是针对每个.form-item中的最后一个子对象,而不是直接针对最后一个form项本身。

$(".webform").on("change", function() {
  $(".form-item:visible").each(function() {
    if ($(this).is(":last-of-type")) {
      //Do whatever
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="webform">
  <div class="form-item" style="display:block">
  </div>
  <div class="form-item" style="display:block">
  </div>
  <div class="form-item" style="display:block">
  </div>
  <div class="form-item" style="display:none">
  </div>
</div>

2 个答案:

答案 0 :(得分:0)

您可以使用此jQuery:last选择器

简化流程
$('.form-item:visible:last')

答案 1 :(得分:0)

您可以根据需要将以下代码应用于表单字段更改或表单提交。

<div class="webform">
    <div class="form-item" style="display:block">
        <input type="text" value="1" />
    </div>
    <div class="form-item" style="display:block">
        <input type="text" value="2" />
    </div>
    <div class="form-item" style="display:block">
        <input type="text" value="3" />
    </div>
    <div class="form-item" style="display:none">
        <input type="text" value="4" />
    </div>
</div>

<script>alert($(".form-item:visible:last input").val());</script>