0

我正在尝试将跨度注入到 UL 的每个列表项中,这是 div 中唯一具有 mydiv id 的 UL。以下代码仅注入最后一个列表项。但是控制台日志正在为每个列表项写入。谁能告诉我哪里出错了?谢谢你的时间。

var myspan = new Element('span', { 'class': 'myspan' });
   $$('#mydiv ul li').each(function(el) {
       myspan.inject(el);
       console.log('the span has been injected');
});
4

1 回答 1

1

它注入了所有的东西,而不仅仅是最后一个。然后它在每次迭代中移动它-inject 会更改父节点,因此它会遍历所有 li 并最终到达最后一个。您需要克隆 span 元素:

var myspan = new Element('span', { 'class': 'myspan' });
$$('#mydiv ul li').each(function(el) {
    myspan.clone().inject(el);
    console.log('the span has been injected');
});
于 2011-12-23T19:16:39.630 回答