Como obter referência para o novo objeto DOM depois de alterar o conteúdo com outerHTML?
Eu tenho uma divisão que preciso alterar seu HTML externo em um evento. O problema é que, ao definir oouterHTML
Não consigo fazer referência ao novo objeto DOM selecionado, a menos que o pegue explicitamente novamente.
Existe uma maneira de atualizar diretamente a referência da variável ao chamarouterHTML
(no meu caso, a referência dodiv
variável abaixo)?
$("#changeDiv").click(function(){
var div = $(this).prev();
div[0].outerHTML = `<div id="imSecondtDiv"> <p> World </p> </div>`;
console.log(div); // logs [div#imFirstDiv, prevObject: n.fn.init[1], context: button#changeDiv]
// the following line does not affect the newly added division
// since the var `div` references the old DOM object
// unless I add div = $(this).prev(); before setting the html of
// the paragraph it will not set it
div.find('p').html('Override');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="imFirstDiv"> <p> Hello </p> </div>
<button id="changeDiv" >Change Div 1</button>