queryString的Id选择器基于类似的索引

时间:2016-05-12 09:47:53

标签: javascript jquery jquery-selectors

我有一个查询来选择以" -1"结尾的所有ID。为此,下面的代码工作正常

  var queryString = ':input:focusable[id$="-' + index + '"]'; 
  element.find(queryString);

我的条件类似于以下ID的结尾,如下所示。

 -index
 -index-0
 -index-1
 ... so on

所以如何在单个查询中处理这个问题。如上所述。任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

jQuery不支持选择器中的RegExp,这对于捕获结束号码的所有可能性是必要的。

相反,您可以使用 filter()

$('input:focusable').filter(function() {
  var re= new RegExp('-' + index + '(-\\d+)?$'); //ends with -index, which may or may not
                                                 //be followed by -number
  return re.test(this.id);
}

<强>段

var index= 1,
    inputs= $('input').filter(function() {
      var re= new RegExp('-' + index + '(-\\d+)?$');
      return re.test(this.id);
    });

inputs.addClass('found');
.found {
  background: yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="abc-1" type="text">
<input id="def-1-0" type="text">
<input id="ghi-1-1" type="text">
<input id="jkl-1mno-0" type="text">
<input id="-1pqr-0" type="text">
<input id="stu-1-159" type="text">