2 Stimmen

jQuery, wenn Element nicht enthalten Element dann erstellen und anhängen ein?

Ich habe eine li Element, das ich auf diese Weise auswähle:

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

Dieses Element kann, muss aber nicht ein ul Element. Ich möchte ein untergeordnetes Element zum ul aber wenn es keine ul Element, das ich zuerst erstellen und hinzufügen möchte.

Ich habe es versucht:

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

Ich habe jedoch herausgefunden, dass parent_li.children('ul') immer ein Objekt zurückgibt, auch wenn es keine Kinder hat ul Elemente.

Was muss ich also tun?

6voto

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

1voto

FishBasketGordo Punkte 22458

Wie Sie schon sagten, die children Methode wird niemals einen falschen Wert zurückgeben. Sie gibt ein jQuery-Objekt mit null oder mehr übereinstimmenden Elementen zurück. Sie müssen die length stattdessen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X