Detecta se um objeto jQuery está na página ou não

Dado um objeto jQuery,$j, Preciso saber se representa algo que já está na página ou se ainda não foi colocado na página. Por exemplo, se eu tiver este:

$j = $('#id-of-something-already-on-the-page');

o

$j = $('<p>Where is pancake house?</p>').appendTo($('#this-is-already-there'));

Então tenho algo na página e não preciso colocá-lo na página. Mas, se eu tiver apenas isso:

$j = $("<p>I'll cook you some eggs, Margie.</p>");

Então eu precisaria anexá-lo antes que esteja na págin

A questão é como você pergunta$j se está na página ou não? Conheço duas maneiras de trabalhar bem o suficiente:

Veja se ele tem um pai:$j.parent().length > 0 implica que está na págin Veja se ele possui um índice válido:$j.index() > -1 implica que está na págin

Eu posso ver o primeiro falhando se$j é ohtml ou possivelmentebody; Fico feliz em ignorar esses dois casos patológicos. Não consigo pensar em nenhuma maneira de a segunda abordagem falha

Existe uma técnica padrão para perguntar se um objeto jQuery está na página ou não? Eu não ligo se$j é visível

questionAnswers(4)

yourAnswerToTheQuestion