- Overview
- Transcript
8.5 Creating Elements and Other Nodes
We can create a number of different things, such as elements, attributes, and comments, using the document
interface. We can also create a lightweight version of a document called a documentFragment
. This lets us manipulate elements in memory, improving performance. We’ll look at these topics in this lesson.
Syntax
createElement
createComment
createDocumentFragment
1.Introduction2 lessons, 07:42
1.1Introduction02:12
1.2Setup05:30
2.Language Fundamentals8 lessons, 1:00:53
2.1Variables06:33
2.2Data Types11:28
2.3Arithmetic, Assignment, and Comparison Operators10:24
2.4Unary, Logical, Comma, and Spread Operators09:02
2.5Operator Precedence03:50
2.6Reserved Words04:17
2.7Strict Mode04:34
2.8Functions10:45
3.Data Structures5 lessons, 22:52
3.1Arrays04:29
3.2Objects04:30
3.3Sets04:57
3.4Maps04:21
3.5Weak Maps and Weak Sets04:35
4.Controlling Program Execution7 lessons, 37:06
4.1Conditionals07:49
4.2Switch Statements04:41
4.3The For Loop06:39
4.4The `for .. in` Loop05:17
4.5The `for .. of` Loop04:02
4.6Iterators05:03
4.7While Loops03:35
5.Using JavaScript13 lessons, 1:44:36
5.1Working With Strings09:32
5.2Template Literals05:46
5.3Working With Numbers06:57
5.4Working With Arrays12:53
5.5Iterating and Transforming Arrays07:33
5.6Working With the Object Type13:55
5.7Object Literal Extensions06:45
5.8Working With Object Instances06:45
5.9Getters and Setters05:00
5.10Custom Objects11:28
5.11The `Math` API04:54
5.12Working With Dates and Times08:10
5.13The `Array` Constructor04:58
6.Functions8 lessons, 56:07
6.1The `this` Object06:15
6.2Working With Functions10:11
6.3Scope07:37
6.4Arrow Functions06:59
6.5Generator Functions08:13
6.6Closures05:00
6.7Prototypes06:26
6.8Default and Rest Parameters05:26
7.Miscellaneous6 lessons, 52:39
7.1Destructuring Assignments08:09
7.2AJAX08:30
7.3Regular Expressions10:51
7.4More About Regular Expressions08:38
7.5Classes06:48
7.6ES Modules09:43
8.Working With the DOM6 lessons, 37:39
8.1Selecting HTML Elements05:02
8.2Manipulating HTML Elements07:40
8.3DOM Traversal05:25
8.4Adding and Removing Elements04:45
8.5Creating Elements and Other Nodes04:39
8.6DOM Events10:08
9.Web APIs4 lessons, 17:41
9.1The Selector API03:03
9.2Geolocation05:29
9.3Web Storage05:24
9.4Web Workers03:45
10.Asynchronous JavaScript5 lessons, 26:23
10.1Promises09:52
10.2Promise Chaining05:11
10.3The async Keyword03:21
10.4The await Keyword04:04
10.5More About async and await03:55
11.Conclusion1 lesson, 00:43
11.1Conclusion00:43
8.5 Creating Elements and Other Nodes
Hi, folks, in this lesson we're going to look at how we can create new elements and other document related things. We've seen how to select existing elements from the page, but what about if we want to create a brand new element from scratch? To do this, we need to use the createElement method. The createElement method is a method of the document object, and it takes a single argument, which is the tag name of the element that we want to create. Once the element has been created, it acts like a node that we have selected from the page. So we can edit any of its properties like ID, or class name, or edit its contents. The element behaves exactly like a regular element, but until it gets added to the page, it only exists in memory. As well as creating elements, we can create other DOM related things, such as attributes or comments. To create a comment, we use the createComment method. The createComment method also takes a single argument, but this time the argument is the text for the comment. To create an attribute, we can use the createAttribute method. But the setAttribute method of DOM loads is generally preferred to using this createAttribute method. So we're not gonna look at that today, but feel free to look it up if you're curious. Another type of thing that we can create is called a document fragment. This is very similar to a proper document, except that it contains a much smaller API, and is seen as a very lightweight version of the document. To create a document fragment, we use the createDocumentFragment method. This method doesn't take any arguments at all. Let's just go back to the browser briefly, we haven't actually logged anything to the console yet in this lesson. But I just want to show you the difference between a document and a document fragment. So let's just look at a document object, briefly. So we can see that the API for a document is huge, and there are many, many properties and methods that we can make use of. And a lot of data and information. A document fragment, however, as you can see from the size of the scroll bar here, has a much, much smaller and simpler API. And this makes it a much smaller, much more lightweight object. And this really is the point of document fragments. We can create one programmatically, add a bunch of new elements to it, and operate on those elements in any way that we need to. And all of this happens in memory, which is much, much faster compared to the real DOM. Once we're done working with the elements in the document fragment, we can then insert the fragment into the page. And these elements become part of the proper document. We can't append the document fragment directly to the main document, however, we need to add it to an element. So let's just go to our index.html page, and let's add a new element to the page here. So we've added a simple new div, and we've given it an id of target. So now that we have a document fragment, let's just add the new div element that we created to it. And now let's insert that document fragment into the actual document. And let's go back to the browser now, and we can already see that the new element has been added to the page, let's just inspect that. So we can see that it has been added as a direct child of the target div. The document fragment has been discarded completely. So in this lesson, we saw how to create brand new elements as well as other types of nodes like comments or document fragments. We also looked at what a document fragment is and we saw that it can be used as a temporary in-memory container for elements that we have created before we're ready to insert them into the page. In the next lesson, we'll go on to look at an incredibly important aspect of the DOM, DOM events, thanks for watching.