jQuery:如何附加到列表项,但在子列表之前?

时间:2014-04-14 18:22:13

标签: javascript jquery html

我需要使用jQuery将一些内容(可能是文本或其他元素)附加到无序列表中的项目的末尾。该项目可能包含一个子列表,因此内容需要在之前出现该子列表。

我的第一直觉是尝试:

$('li#someId').append(newContent);

当然,如果项目包含子列表,则新内容出现在该列表之后。我无法找出一种简单,通用的方式来告诉jQuery将内容附加到项目中,但是在任何子列表之前。我最后编写了这个函数来代替它:

function appendBeforeSublist(listItem, content) {
    var sublist = listItem.find('ul:first');

    if (sublist.length > 0) {
        sublist.before(content);
    } else {
        listItem.append(content);
    }
}

它没有感觉正确,因为我认为必须有一种类似jQuery的方式来做到这一点。我怎样才能使用jQuery选择器和函数?此外,就性能而言,更像是jQuery的解决方案是更好还是更差?如果列表很长,我的代码可能会执行很多功能。

有关说明,请参阅JSFiddle中的my experiment

0 个答案:

没有答案