Traversing the DOM in Modern Browsers

Modern JavaScript Manipulating HTML Pages
7 minutes
Share the link to this page
Copied
  Completed
You need to have access to the item to view this lesson.
One-time Fee
$99.99
List Price:  $139.99
You save:  $40
€92.78
List Price:  €129.90
You save:  €37.11
£79.40
List Price:  £111.16
You save:  £31.76
CA$136.11
List Price:  CA$190.56
You save:  CA$54.44
A$154.13
List Price:  A$215.78
You save:  A$61.65
S$135.08
List Price:  S$189.12
You save:  S$54.03
HK$782.28
List Price:  HK$1,095.23
You save:  HK$312.94
CHF 90.61
List Price:  CHF 126.85
You save:  CHF 36.24
NOK kr1,085.23
List Price:  NOK kr1,519.37
You save:  NOK kr434.13
DKK kr692.01
List Price:  DKK kr968.84
You save:  DKK kr276.83
NZ$167.80
List Price:  NZ$234.94
You save:  NZ$67.13
د.إ367.19
List Price:  د.إ514.08
You save:  د.إ146.89
৳10,976.08
List Price:  ৳15,366.96
You save:  ৳4,390.87
₹8,339.52
List Price:  ₹11,675.66
You save:  ₹3,336.14
RM473.25
List Price:  RM662.57
You save:  RM189.32
₦141,842.81
List Price:  ₦198,585.61
You save:  ₦56,742.80
₨27,810.04
List Price:  ₨38,935.18
You save:  ₨11,125.13
฿3,647.70
List Price:  ฿5,106.92
You save:  ฿1,459.22
₺3,232.12
List Price:  ₺4,525.11
You save:  ₺1,292.98
B$499.21
List Price:  B$698.91
You save:  B$199.70
R1,908.54
List Price:  R2,672.04
You save:  R763.49
Лв180.65
List Price:  Лв252.92
You save:  Лв72.26
₩135,197.71
List Price:  ₩189,282.20
You save:  ₩54,084.49
₪368.63
List Price:  ₪516.10
You save:  ₪147.47
₱5,633.91
List Price:  ₱7,887.71
You save:  ₱2,253.79
¥15,144.47
List Price:  ¥21,202.86
You save:  ¥6,058.39
MX$1,659.40
List Price:  MX$2,323.22
You save:  MX$663.82
QR364.31
List Price:  QR510.04
You save:  QR145.73
P1,370.91
List Price:  P1,919.33
You save:  P548.42
KSh13,148.68
List Price:  KSh18,408.68
You save:  KSh5,260
E£4,729.52
List Price:  E£6,621.52
You save:  E£1,892
ብር5,680.63
List Price:  ብር7,953.11
You save:  ብር2,272.48
Kz83,612.74
List Price:  Kz117,061.18
You save:  Kz33,448.44
CLP$97,978.20
List Price:  CLP$137,173.40
You save:  CLP$39,195.20
CN¥722.95
List Price:  CN¥1,012.16
You save:  CN¥289.21
RD$5,921.50
List Price:  RD$8,290.34
You save:  RD$2,368.83
DA13,490.83
List Price:  DA18,887.70
You save:  DA5,396.87
FJ$226.12
List Price:  FJ$316.58
You save:  FJ$90.46
Q779.86
List Price:  Q1,091.83
You save:  Q311.97
GY$20,923.51
List Price:  GY$29,293.76
You save:  GY$8,370.24
ISK kr13,946.60
List Price:  ISK kr19,525.80
You save:  ISK kr5,579.20
DH1,013.19
List Price:  DH1,418.51
You save:  DH405.32
L1,763.34
List Price:  L2,468.75
You save:  L705.40
ден5,702.11
List Price:  ден7,983.18
You save:  ден2,281.07
MOP$805.89
List Price:  MOP$1,128.28
You save:  MOP$322.39
N$1,893.44
List Price:  N$2,650.90
You save:  N$757.45
C$3,681.15
List Price:  C$5,153.75
You save:  C$1,472.60
रु13,335.63
List Price:  रु18,670.42
You save:  रु5,334.78
S/370.84
List Price:  S/519.19
You save:  S/148.35
K382.72
List Price:  K535.82
You save:  K153.10
SAR375
List Price:  SAR525.01
You save:  SAR150.01
ZK2,522.76
List Price:  ZK3,531.96
You save:  ZK1,009.20
L461.43
List Price:  L646.02
You save:  L184.59
Kč2,350.75
List Price:  Kč3,291.15
You save:  Kč940.39
Ft36,729.02
List Price:  Ft51,422.10
You save:  Ft14,693.08
SEK kr1,071.30
List Price:  SEK kr1,499.86
You save:  SEK kr428.56
ARS$85,766.82
List Price:  ARS$120,076.98
You save:  ARS$34,310.16
Bs691.04
List Price:  Bs967.48
You save:  Bs276.44
COP$387,583.68
List Price:  COP$542,632.66
You save:  COP$155,048.97
₡50,832.34
List Price:  ₡71,167.31
You save:  ₡20,334.97
L2,468.78
List Price:  L3,456.40
You save:  L987.61
₲737,805.73
List Price:  ₲1,032,957.54
You save:  ₲295,151.80
$U3,781.90
List Price:  $U5,294.82
You save:  $U1,512.91
zł400.73
List Price:  zł561.05
You save:  zł160.31
Already have an account? Log In

Transcript

In the previous video, we encountered a few difficulties in traversing the nodes of the DOM because of the text nodes that were created. Remember, the entire HTML document is converted to nodes. A tag within a smell document is converted to a node that we can work with. But when there's a carriage return or a tab, characters that we don't see when we're looking at the HTML document, those get converted to nodes as well. And those can cause some difficulties as we're traversing. We used the node type, node name, etc.

We can use those to overcome those difficulties. But with modern browsers, there's some additional JavaScript commands that we can use to only select elements to only traverse to HTML elements when we're moving between nodes in the DOM. Now, as I said, these are only supported by modern browsers. So if you're targeting modern browsers, then you can go ahead and use these commands. Now let's take a look at what they are. We have instead of first child, which we talked about in the previous video, we have first element child.

We have last element child. Instead of child nodes, we have children. So this returns an array of children as well. But that array only consists of HTML elements that have been converted to nodes. We have previous element, sibling, and next element sibling as opposed to just previous sibling and next sibling. Alright, let's jump to the same page.

We've been using To try these different commands on, and let's now look at some of the same things we were doing in the previous video. But with these new commands that we've learned, so I'll open up the console. And one of the first things we did in the previous movie was we selected the node that had an ID of content. And if you remember, that is this div right here that contains the h1, another div and all the bullets. So let's press return. Now if you remember when we did no next sibling, we ran into this, we received a text node.

And we were really trying to get to the next sibling in our HTML document which would be the footer. Well Let's see what happens now. We can use next element sibling, instead of just next sibling, press return. Sure enough, it gives us the footer like we were expecting. So it goes to the next HTML elements, not just to the next node, which could be a text node. All right with this we also did first child.

And that also gave us a text node. But now we can do node dot, first element child. And that gives us the h1 which is the first child of that div tag. Now I'll see you remember in the previous video, we selected all of these Li tags, while we selected the parent of them actually, the ol tag, the ordered list tag, and then we use the for loop to go through each one of them. And change the color to green. But we had to use node type as a part of that for loop.

If you remember we had an if if conditional that check to see if the node type was equal to one, if it were equal to one, we knew that it was an HTML element. And therefore we were able to change the color. Well, we can skip that if conditional by using one of these new commands. So let's do that same exercise again. We're going to select document query selector. So I just want the first one.

I'm not doing query selector all. I'm just going to grab the first one because I happen to know that there is only one that meets this criteria and that's a class of bullets. With a child node of o L. And I press return. Now in the previous video, we then took the child nodes of this variable, and those are what we iterated through with the for loop. This time let's take the children whoops. Now remember, children will return an array as well, but it will only have HTML elements, it will only have nodes of HTML elements.

So I press return, let's just take a look at it really quick. Sure enough, there are no text nodes in there. So now our for loop is a little bit simpler. So for let i equals zero whoops. I is Less than bullets dot length, then i plus plus. Now we do not need the if conditional we can simply do bullets, i dot style dot color equals green.

And then our closing curly brace. move this over a bit. So you can see the bullets. When I press return, sure enough, they all turn green. And we were able to get an array of HTML element nodes without any text nodes because of the children command which we use in this case. So in newer browsers, you can use first element child last element child, children Previous element, sibling and next element sibling.

Now how do you know what browsers support those commands? Let me show you a website really quick that will give you that information. Here's the URL. We're going to. And here are the commands we've talked about. You can see up through ay ay ay ay ay.

There is no support, ie nine above support. Firefox three no support. You can see where Safari is you can see where Chrome is opera. So that will give you an idea which browsers you can target for these commands. Let's move on to the next topic.

Sign Up

Share

Share with friends, get 20% off
Invite your friends to LearnDesk learning marketplace. For each purchase they make, you get 20% off (upto $10) on your next purchase.