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:
$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