简体   繁体   中英

How to change the content of an element with childNodes (Javascript)?

How can I change the content of an element with childNodes (Javascript)? I tried something but it did not work.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Zitat</title>
        <script type="text/javascript">
            var htmlNode = document.documentElement;
            var emNode = htmlNode.childNodes[1].childNodes[0].childNodes[1].childNodes[1];
            emNode.innerHtml = "BBB";
        </script>
    </head>
    <body>
        <ul>
            <li>Hello World</li>
            <li>AAA <em>DDD</em> CCC.</li>
        </ul>
    </body>
</html>

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Zitat</title> <script> document.addEventListener("DOMContentLoaded", function (event) { var arrAllListTags = document.querySelectorAll("li"); arrAllListTags[1].childNodes[1].textContent = "BBB"; }); </script> </head> <body> <ul> <li>Hello World</li> <li>AAA <em>DDD</em> CCC.</li> </ul> </body> </html> 

First of all, the script tag should be placed AFTER the markup, otherwise it will be run before the actual html you are trying to modify is actually rendered. Second of all, I think your selectors are wrong. childNodes is a valid property of DOM objects, but you have a mistake in your chain. Thirdly, I would use document.querySelector to target elements, not a chain of childNodes . Finally, use innerHTML (not innerHtml) to set html content, or textContent if it is a Text node you are trying to update.

MDN Docs on innerHTML

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM