0
我想遍歷從給定索引處的元素開始的同一父div的第一個孩子。jQuery的 - 如何遍歷同一父div的第一個孩子
我有「字」divs環繞「字母」divs。
HTML:
<div class="row">
<div class="twelve columns">
<div class="word">
<div class="character">
<div class="number">
4
</div>
<div class="options">
GHI
</div>
<div class="letter">H</div>
</div>
<div class="character">
<div class="number">
3
</div>
<div class="options">
DEF
</div>
<div class="letter">E</div>
</div>
<div class="character">
<div class="number">
5
</div>
<div class="options">
JKL
</div>
<div class="letter">L</div>
</div>
<div class="character">
<div class="number">
5
</div>
<div class="options">
JKL
</div>
<div class="letter">L</div>
</div>
<div class="character">
<div class="number">
6
</div>
<div class="options">
MNO
</div>
<div class="letter">O</div>
</div>
</div>
<div class="word">
<div class="character">
<div class="number">
4
</div>
<div class="options">
GHI
</div>
<div class="letter">I</div>
</div>
<div class="character">
<div class="number">
7
</div>
<div class="options">
PQRS
</div>
<div class="letter">S</div>
</div>
</div>
<div class="character">
<div class="number">
4
</div>
<div class="options">
GHI
</div>
<div class="letter"></div>
<div class="select">
<select class="word-options">
<option value="">Select a word</option>
<option value="IT">IT</option>
</select>
</div>
</div>
<div class="character">
<div class="number">
8
</div>
<div class="options">
TUV
</div>
<div class="letter"></div>
</div>
<div class="character">
<div class="number">
7
</div>
<div class="options">
PQRS
</div>
<div class="letter"></div>
</div>
<div class="character">
<div class="number">
3
</div>
<div class="options">
DEF
</div>
<div class="letter"></div>
</div>
<div class="character">
<div class="number">
2
</div>
<div class="options">
ABC
</div>
<div class="letter"></div>
</div>
</div>
</div>
的jQuery:
var decoder = {};
decoder.firstEmptyIndexPrevious;
var findPrevStart = function(startIndex){
//if startIndex is not defined, set it to index of current cursor position
if (!startIndex){
startIndex = $('div.select').parents('div.character').first().index('div.character');
}
//index of first letter in word before the position of the start index. should return 5 in this example
decoder.firstEmptyIndexPrevious = $('div.character:lt(' + startIndex + ')').last().siblings('div.word div.character').first().index();
//decoder.firstEmptyIndexPrevious = $('div.character:lt(' + startIndex + ')').last().parent().children().first().index();
console.log('startIndex = ' + startIndex);
console.log('decoder.firstEmptyIndexPrevious = ' + decoder.firstEmptyIndexPrevious);
}
$(document).ready(function() {
findPrevStart();
});
基本上,在decoder.firstEmptyIndexPrevious,我想這個詞的第一個字母的指數立即出現該選擇元素,其中前(它將像遊標一樣動態地移動DOM)。 startIndex按預期返回7,但decode.firstEmptyIndexPrevious返回0,無論它從哪裏運行。這種情況發生在活動行和註釋行中,但採用的方法略有不同。在這個例子中它應該返回5。不知道有什麼問題。
的jsfiddle:http://jsfiddle.net/mrengy/h2DZG/1/
可以簡化你的榜樣或準確地描述你想要什麼?當你用數字說話而沒有真正問你想要什麼時,這是令人困惑的。 – 2013-04-26 19:17:07
@Vega我在前面的段落中想要達到什麼目的,但我只是將文本的順序移到最後。 – 2013-04-26 19:26:49
不帶參數的'index()'返回其父代中元素的索引。選擇是找到'.character' DIV選項'GHI',它是'.word'父項的第一個子項,所以索引爲0. – Barmar 2013-04-26 19:33:17