0

我正在使用原型将一个新元素添加到 OL 列表中。为了使用 .firstChild 属性,我在做任何事情之前使用了 cleanWhitespace() 函数。这工作得很好,如果我在跟踪我的 OL 的 innerHTML 之后它只是一个预期的纯字符串。

然后我添加了一个新的 LI 项目,并添加了空格。添加新的 LI 后应用 cleanWhitespace() 函数没有任何效果。任何想法为什么?

这是我的代码:

$$('div.pagination > ol').each(function(item){
    item.cleanWhitespace(); // Working
    if(!item.firstChild.childElementCount) {
        var prevLi = document.createElement('li');
        prevLi.update('<a href="#">&laquo;</a>');
        prevLi.addClassName('disabled');
        item.insertBefore(prevLi, item.firstChild);
    }else{
        item.firstChild.children[0].update('&laquo;');
    }
    item.cleanWhitespace(); // Not working
});

提前致谢。

4

1 回答 1

0

我不太确定我理解你为什么在cleanWhitespace这里使用,但如果它只是用来firstChild不打任何文本节点,我肯定会放弃所有这些,只使用Element#firstDescendant因为它跳过文本和注释节点。Prototype 的所有 DOM 遍历方法(descendants,immediateDescendants等)都会跳过你不想要的垃圾。

于 2012-06-07T19:55:53.090 回答