Jquery选择器,用于所有元素的类,其形式位于一个元素之后

时间:2016-08-25 12:26:49

标签: javascript jquery selector

我需要在'complexList'之后的表单中找到类'el'的所有元素。

示例

var el = $(this);
var els = $('#' + obj.tableId + '_editorForm').find('.complexList');
el.nextAll('.complexList') //dont work

由于

1 个答案:

答案 0 :(得分:1)

如果nextAll不起作用,则表示存在各种嵌套级别的元素。但您仍然可以使用indexslice来完成此操作。

els = els.slice(els.index(el) + 1);

index,如上所述,查找匹配集中给定元素的索引; slice返回集合中元素的子集。所以我们要求以el之后的元素开头的子集。

示例:



var obj = {
  tableId: "foo"
};
$(document.body).on("click", ".complexList", function() {
  var el = $(this);
  var els = $('#' + obj.tableId + '_editorForm').find('.complexList');
  els.css("color", ""); // clear previous
  els = els.slice(els.index(el) + 1);
  els.css("color", "blue");
});

All of the text fields below are `.complexList` fields. Click any of them to turn all `.complexList` elements <em>after</em> it blue.
<form id="foo_editorForm">
  <label>
    Field 1:
    <input type="text" class="complexList" value="field1">
  </label>
  <label>
    Field 2:
    <input type="text" class="complexList" value="field2">
  </label>
  <label>
    Field 3:
    <input type="text" class="complexList" value="field3">
  </label>
  <label>
    Field 4:
    <input type="text" class="complexList" value="field4">
  </label>
  <label>
    Field 5:
    <input type="text" class="complexList" value="field4">
  </label>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;