New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Targeting node elements

From: JavaScript: Enhancing the DOM

Video: Targeting node elements

In the last movie, we talked about basic access properties for node elements and the problem with traversing the DOM nodes using child nodes. Sometimes you get text elements that are just carriage returns. Some browsers support a better way of selecting elements. So, for example, you can use the property called first element child, and that gives you the first child only if it's an element. Like a tag. So, it would ignore any comment or text nodes. You can also use, of course, last element child and children.

Targeting node elements

In the last movie, we talked about basic access properties for node elements and the problem with traversing the DOM nodes using child nodes. Sometimes you get text elements that are just carriage returns. Some browsers support a better way of selecting elements. So, for example, you can use the property called first element child, and that gives you the first child only if it's an element. Like a tag. So, it would ignore any comment or text nodes. You can also use, of course, last element child and children.

Which gives you only children that are elements. Of course, you can also use previous element sibling and next element sibling that's the equivalent of the previous sibling and next sibling. Now, before you get too excited about this, this has really lousy browser support. So, if you go to this page and you take a look at this right here, it's showing you that its available in IE 9 but not in some versions of Firefox. So, it's something good to use for newer browser support but not something you should be using if you want to be totally backwards compatible.

So, let's take a look at some of these. So, I'm in my document. I already have the consulant open. So, I'll click right here on the magnifying glass and we'll click on this element that shows me the path. And if I do my node, you can see that we have only the first list item over here. So, you can see that my node.parent node. We get the entire list. Now, if we do my node.parent node, and then try to get the child nodes of this element, we're going to get everything including every carriage return.

Now, if we do only parent node than that children, we're only going to get the children that are elements. So, it's going to ignore all these characters right here, which is pretty awesome. Of course, you could do my node parent node, and then do first child. That gives you the first text element. But if you do first element child, it will ignore the first text element and give you only this element right here. And the same way you can use my node, parent node and then last element child.

And that gives you only the last element, getting rid of any text nodes. And, of course, you can traverse through the different nodes using next element sibling and previous element sibling. Now notice that we didn't have to do anything special for parent node. And that's because a text element or a comment cannot have any children by definition. So, pairing node is always going to return an element. So, although this is a great way of selecting just elements, you need to ask yourself if you're willing to sacrifice some support in older browsers.

Show transcript

This video is part of

Image for JavaScript: Enhancing the DOM
JavaScript: Enhancing the DOM

36 video lessons · 7371 viewers

Ray Villalobos
Author

 
Expand all | Collapse all
  1. 2m 36s
    1. Welcome
      59s
    2. What you should know before watching this course
      50s
    3. Using the exercise files
      47s
  2. 24m 33s
    1. What is the Document Object Model (DOM)?
      3m 2s
    2. Navigating the DOM with developer tools
      8m 10s
    3. Testing JavaScript commands with the console
      5m 50s
    4. Communicating with the console through JavaScript
      7m 31s
  3. 31m 9s
    1. Selecting elements with getElementById
      4m 10s
    2. Choosing elements by HTML tag
      3m 20s
    3. Isolating elements by class name
      3m 12s
    4. Querying CSS to select elements
      4m 54s
    5. Working with named form elements
      3m 39s
    6. Understanding nodeType, nodeName, and nodeValue
      4m 30s
    7. Traversing up and down DOM nodes
      4m 40s
    8. Targeting node elements
      2m 44s
  4. 22m 25s
    1. Changing HTML attributes
      5m 25s
    2. Working with restricted attributes
      2m 49s
    3. Detecting data attributes
      3m 29s
    4. Controlling classes with the HTML5 classList
      3m 21s
    5. Targeting the attributes property
      1m 24s
    6. Using text content modifiers
      3m 42s
    7. Modifying elements as text
      2m 15s
  5. 14m 57s
    1. Creating and appending nodes
      4m 27s
    2. Controlling node insertions with insertBefore
      3m 17s
    3. Cloning and removing nodes
      4m 41s
    4. Replacing existing nodes
      2m 32s
  6. 26m 14s
    1. What we'll build
      2m 16s
    2. Adding a bubbling event listener
      4m 11s
    3. Creating and styling an overlay with JavaScript
      4m 39s
    4. Adding an image
      3m 48s
    5. Resizing images in the DOM
      2m 59s
    6. Centering an image
      2m 36s
    7. Handling clicks
      1m 29s
    8. Adjusting for scrolling
      1m 36s
    9. Detecting and adjusting for a window resize
      2m 40s
  7. 1m 49s
    1. Next steps
      1m 49s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.