Javascript jQuery:如何附加到列表项,但在子列表之前?
我需要使用jQuery将一些内容(可能是文本或其他元素)附加到无序列表中项目的末尾。该项可能包含子列表,因此内容需要显示在该子列表之前 我的第一反应是尝试:Javascript jQuery:如何附加到列表项,但在子列表之前?,javascript,jquery,html,Javascript,Jquery,Html,我需要使用jQuery将一些内容(可能是文本或其他元素)附加到无序列表中项目的末尾。该项可能包含子列表,因此内容需要显示在该子列表之前 我的第一反应是尝试: $('li#someId').append(newContent); 当然,如果项目包含子列表,则新内容将出现在该列表之后。我想不出一个简单的、通用的方法来告诉jQuery将内容附加到项目中,但是在任何子列表之前。我最终写了这个函数来代替它: function appendBeforeSublist(listItem, content)
$('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的解决方案是更好还是更差?如果列表很长,我的代码可能会大量执行此功能
有关说明,请参见JSFIDLE中的。使用listItem.prepend(内容)将新内容置于listItem中任何内容之前。@keune:正如问题所述,我想将内容附加到列表项内容中。例外情况是,当列表项的内容包含另一个子列表时,该内容应显示在该子列表之前。