我有一个半任意的DOM树,其中有一个INPUT
控件。例如:
.terminal { white-space: no-wrap; display: inline-block; }
<div id="the-root">
<span class="terminal">Alpha</span>
<span><span class="terminal">Beta</span></span>
<span>
<span class="terminal"><input value="Gamma" /></span>
<span><span class="terminal">Delta</span></span>
</span>
<span class="terminal">Epsilon</span>
</div>
INPUT
可以放在任何终端元素中。
我需要在INPUT
的左侧和右侧找到下一个(已渲染的)终端元素。使用jQuery有一种简单的方法吗?
解决方案的加分点,如果有多个条目跨越多行,也能够在INPUT
的正上方和下方找到终端元素。
这是一个让你玩的小提琴:http://jsfiddle.net/g4oq1q35/
答案 0 :(得分:1)
我认为您可以尝试基于索引的解决方案
var $terminals = $('.terminal'),
$terminal = $input.closest('.terminal'),
idx = $terminals.index($terminal);
$terminals.eq(idx - 1).addClass('left');
$terminals.eq(idx + 1).addClass('right');
演示:Fiddle