jQuery如果元素不包含元素然后创建并追加一个?

时间:2011-08-25 13:52:16

标签: jquery

我有一个li元素,我选择这样:

var parent_li = $(this).parent();

此元素可能包含也可能不包含ul元素。我想在ul添加一个孩子,但如果没有ul元素,我想先创建并添加它。

我试过了:

if( !parent_li.children('ul') )
{
   //if the parent list doe not contain
   //an UL element, then add one
   parent_li.append($('<ul></ul>'));
}

但是,我发现parent_li.children('ul')总是返回一个对象,即使它没有任何子ul元素。

那么我需要做什么?

2 个答案:

答案 0 :(得分:6)

if (parent_li.children('ul').length == 0){
   parent_li.append($('<ul></ul>'));
}

答案 1 :(得分:1)

正如您所说,children方法永远不会返回假值。它返回一个具有零个或多个匹配元素的jQuery对象。您必须检查length

if( !parent_li.children('ul').length )
{
   //if the parent list doe not contain
   //an UL element, then add one
   parent_li.append($('<ul></ul>'));
}