Em vez de pesquisar tediosamente soluções alternativas para cada tipo de atributo e evento ao usar a seguinte sintaxe:
elem = document.createElement("div");
elem.id = 'myID';
elem.innerHTML = ' my Text '
document.body.insertBefore(elem,document.body.childNodes[0]);
Existe uma maneira de simplesmente declarar todo o elemento HTML como uma string? gostar:
elem = document.createElement("<div id='myID'> my Text </div>");
document.body.insertBefore(elem,document.body.childNodes[0]);
javascript
html
O Flash
fonte
fonte
Você quer isso
fonte
body
elemento, mas funciona bem em qualquer outro elemento.<body>
. Na verdade, executá-lo<body>
é meu método padrão de injetar coisas como folhas de estilo em páginas da web por meio do console. Que problema você está tendo?<body>
fossem indefinidos, todos os outros elementos também seriam, então esse provavelmente não é o problema de Phill.Dê uma olhada em insertAdjacentHTML
position é a posição relativa ao elemento que você está inserindo adjacente a:
'beforebegin' Antes do próprio elemento
'afterbegin' Apenas dentro do elemento, antes de seu primeiro filho
'beforeend' Apenas dentro do elemento, após seu último filho
'afterend' Após o próprio elemento
fonte
No JavaScript antigo, você poderia fazer isso:
Em resposta ao seu comentário:
Você precisa injetar o novo HTML no DOM; é por isso que
innerHTML
é usado no exemplo do JavaScript da velha escola. OinnerHTML
doBODY
elemento é adicionado ao novo HTML. Não estamos realmente mexendo no HTML existente dentro doBODY
.Vou reescrever o exemplo mencionado acima para esclarecer isso:
Usar uma estrutura JavaScript tornaria este código muito menos prolixo e melhoraria a legibilidade. Por exemplo, jQuery permite que você faça o seguinte:
fonte
document.getElementsByTagName('body')[0]
pode de fato ser substituído pordocument.body
, bom argumento. No entanto, se desejar preceder ou acrescentar o novo HTML a outro elemento existente em vez do BODY, você terá que usardocument.getElementById()
e / oudocument.getElementsByTagName()
; é por isso que usei no exemplo.Que eu saiba, que, para ser justo, é bastante novo e limitado, o único problema potencial com essa técnica é o fato de que você é impedido de criar dinamicamente alguns elementos da tabela.
Eu uso um formulário para modelagem adicionando elementos de "modelo" a um DIV oculto e, em seguida, usando cloneNode (true) para criar um clone e anexá-lo conforme necessário. Tenha em mente que você precisa se certificar de reatribuir os IDs conforme necessário para evitar duplicação.
fonte
Como outros disseram, a conveniente funcionalidade jQuery prepend pode ser emulada:
Embora alguns digam que é melhor não "bagunçar" o innerHTML , ele é confiável em muitos casos de uso, se você souber disso:
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
Ou:
insertAdjacentHTML
provavelmente é uma boa alternativa: https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTMLfonte
Se você deseja inserir o código HTML dentro da tag da página existente, use o Jnerator . Esta ferramenta foi criada especialmente para este fim.
Em vez de escrever o próximo código
Você pode escrever uma estrutura mais compreensível
fonte