Javascript jQuery如何在给定索引或更高版本中搜索元素

Javascript jQuery如何在给定索引或更高版本中搜索元素,javascript,jquery,Javascript,Jquery,我有基本的html <div class="letter">A</div> <div class="letter">B</div> <div class="letter"></div> <div class="letter">D</div> <div class="letter"></div> 如何扩展这个findStart函数来传递一个变量,该变量将开始搜索给定索引处的空元

我有基本的html

<div class="letter">A</div>
<div class="letter">B</div>
<div class="letter"></div>
<div class="letter">D</div>
<div class="letter"></div>

如何扩展这个findStart函数来传递一个变量,该变量将开始搜索给定索引处的空元素。对于exmaple,我想运行findStart(3),它将返回HTML示例(4)中第五个元素的索引。运行findStart(0)或findStart(1)将返回2。

您可以使用JQuery的方法,它以一种形式允许您传递一个接收索引的筛选函数。因此,以下措施应该有效:

someResultSet.filter(function (i) { return i < someOtherIndex; })
someResultSet.filter(函数(i){returni
方法或选择器

使用jQuery的筛选方法只返回不带文本的元素

var selector = ".letter" ;
$(selector).filter(function(){return !$(this).text()}).get(0) ;

您可以结合使用
:gt
:first

var findStart = function(i){
    return $('div.letter:gt(' + i + '):empty:first').index('div.letter');
}

试试这个,它会有用的
如果未找到空元素,则返回null。
另一方面,它将返回下一个空元素索引

var findStart = function(n){
    var i=n-1,l=$('div.letter').length;
    for(;i<l;i++){
        if($('div.letter').eq(i).html()==""){
            return i;
        } 
    }
    return null;
}
var findStart=函数(n){
变量i=n-1,l=$('div.letter')。长度;

对于(;iPeeHaa的答案正是您所需要的。我已经删除了我的答案。我认为您应该
返回$('div.letter:gt('+I+'):empty:first')。index('div.letter');
@raina77现在我专注于选择器,没有注意到。按照织女星的建议进行了更改。
var findStart = function(n){
    var i=n-1,l=$('div.letter').length;
    for(;i<l;i++){
        if($('div.letter').eq(i).html()==""){
            return i;
        } 
    }
    return null;
}