如何改进.nextAll(),. last()和.after()的使用?

时间:2013-11-06 07:01:05

标签: jquery html

有没有办法改进以下代码?我怀疑它可以在不必使用.each()的情况下完成,但我不确定如何实现这一点。

JS:

$('dt.something').each(function () {
    $(this).nextUntil('dt.something')
        .last()
        .after($('<dd>new one</dd>'))
});

上面的代码作用于下面的示例,在指定的元素之后添加新的<dd>。基本上每<dd><dd>s的每个“集合”末尾都有一个新的<dt class="something">

<dl>
    <dt class="something">term 1</dt>
    <dd>definition 1-a</dd>
    <dd>definition 1-b</dd>
    <dd>definition 1-c</dd>
    <dd>definition 1-d</dd> <<-----here
    <dt class="something">term 2</dt>
    <dd>definition 2-a</dd>
    <dd>definition 2-b</dd>
    <dd>definition 2-c</dd> <<-----here
    <dt class="something">term 3</dt>
    <dd>definition 3-a</dd>
    <dd>definition 3-b</dd> <<-----here
</dl>

1 个答案:

答案 0 :(得分:0)

沿着这些方向可能有些东西

/* Select all dt.something elements inside dl that are immedialy after dd and add new element before it. */
$('dl dd + dt.something').before('<dd>new one</dd>'); 
/* Select last dd inside dl and add new elem after that */
$('dl dd:last').after('<dd>new one</dd>');