0

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

JS:

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

<dd>上面的代码作用于下面的示例,在指示的元素之后添加一个新的。基本上<dd>在每个“集合”的末尾都有一个新的<dd>seach <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>
4

1 回答 1

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>');
于 2013-11-06T07:35:18.747 回答