Tworzę lightbox w czystym JavaScript. W tym celu robię nakładkę. Chcę dodać tę nakładkę do treści, ale chcę również zachować zawartość na stronie. Mój obecny kod dodaje nakładkę div, ale usuwa również bieżącą zawartość w treści. Jak dodać element div i zachować zawartość w treści?
var el = document.getElementById('element');
var body = document.getElementsByTagName('body');
el.innerHTML = '<p><a id="clickme" href="#">Click me</a></p>';
document.getElementById('clickme').onclick = function (e) {
e.preventDefault();
document.body.innerHTML = '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;"></div>';
}
javascript
Om3ga
źródło
źródło
Odpowiedzi:
Wypróbuj to: -
http://jsfiddle.net/adiioo7/vmfbA/
Posługiwać się
zamiast
Edycja: - Najlepiej byłoby użyć
body.appendChild
metody zamiast zmieniaćinnerHTML
źródło
innerHTML
od nowa.Korzystanie z JavaScript
Korzystanie z jQuery
źródło
appendChild()
iinsertBefore()
dają jeszcze większą swobodę w lokalizacji wstawianego elementuZamiast zamieniać wszystko na innerHTML, spróbuj:
document.body.appendChild(myExtraNode);
źródło
document.body
.ulepszenie postu @Peter T, poprzez zebranie wszystkich rozwiązań w jednym miejscu.
Element.insertAdjacentHTML ()
Za pomocą
XPath
znajdź pozycję elementu w drzewie DOM i wstaw określony tekst w określonej pozycji do elementu XPath_Element. wypróbuj ten kod w konsoli przeglądarki.źródło
Spróbuj
źródło
Możesz stworzyć swój
div
kod HTML i ustawić go bezpośrednio wbody
(lub dowolnym elemencie) za pomocą następującego kodu:źródło
Współczesnym sposobem jest użycie
ParentNode.append()
:źródło
Najlepszym i lepszym sposobem jest utworzenie elementu i dołączenie go do
body
tagu. Drugim sposobem jest najpierw pobranieinnerHTML
właściwości programubody
i dodanie za jego pomocą kodu. Na przykład:źródło
document.body
, po drugie, jak wspomniałem wcześniej, nie przepisuj całej strony tylko po to, aby dodać element.Oto naprawdę szybka sztuczka: powiedzmy, że chcesz dodać znacznik p wewnątrz znacznika div.
I to wszystko.
źródło