1

私は基本的にhtmlを持っています

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

および最初の空の div のインデックスを返す jQuery 関数 (クラス "letter" を使用)

var firstEmptyIndex;

var findStart = function(){
    var firstEmptyElement = $('div.letter:empty:eq(0)');
    firstEmptyIndex = firstEmptyElement.index('div.letter');
}

この findStart 関数を拡張して、特定のインデックスで空の要素の検索を開始する変数を渡すにはどうすればよいですか。たとえば、findStart(3) を実行すると、HTML の例 (4) の 5 番目の要素のインデックスが返されます。findStart(0) または findStart(1) を実行すると、2 が返されます。

4

5 に答える 5

3

:gtとの組み合わせを使用できます:first

var findStart = function(i){
    return $('div.letter:gt(' + i + '):empty:first').index('div.letter');
}
于 2012-10-31T13:58:35.033 に答える
0

JQuery のfilterメソッドを利用することができます。これにより、ある形式では、インデックスを受け取るフィルター関数を渡すことができます。したがって、次のように動作するはずです。

someResultSet.filter(function (i) { return i < someOtherIndex; })
于 2012-10-31T13:55:11.143 に答える
0

slice(start[,end])メソッドまたは:gt(index)セレクター

于 2012-10-31T13:57:30.450 に答える
0

これを試してみてください
。空の要素が見つからない場合は 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;
}
于 2012-10-31T14:00:56.737 に答える
0

jQuery のフィルター メソッドを使用して、テキストのない要素だけを返します。

var selector = ".letter" ;
$(selector).filter(function(){return !$(this).text()}).get(0) ;
于 2012-10-31T13:58:19.590 に答える