A JavaScript Image Gallery
阅读原文时间:2023年07月15日阅读:1

childNodes property: 

The childNodes property is a way of getting information about the children of any element in a 

document's node tree. It returns an array containing all the children of an element node :

    element.childNodes; 

Lets say you wanted to get all the children of the body element.

    var body_element = document.getElementsByTagName("body")[0];

To access the children of the body element, you just need to use :

    body_element.childNodes; 

you may write a function to find out how many elements the body element contains :

function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0] ;
alert( body_element.childNodes.length );
}

If you want this function to be excuted when the page loads, you can use the onload event handler

to do this. 

        window.onload = countBodyChildren ;

When the document loads, the countBodyChildren function will be invoked.

 


nodeType property :

This will tell us exactly what kind of node we're dealing with. 

The nodeType property is called with the following syntax : 

node.nodeType

instead of returning a string like "element" or "attribute", it returns a number.

There are 12 possible values for nodeType, but only 3 of them are going to be of much practical use:

  • Element nodes have a nodeType value of 1
  • Attribute nodes have a nodeType value of 2
  • Text nodes have a nodeType value of 3

nodeValue property :

If you want to change the value of a text node, there is a DOM property called nodeValue that can be 

used to get (and set) the value of a node :

node.nodeValue

firstChild and lastChild property :

node.firstChild  ==  node.childNodes[0]

node.lastChild   ==  node.childNodes[node.childNodes.length-1]


This image gallery projects are as follws :

/***      index.html      ***/



Image Gallery

<h1>Snapshiots</h1>  
<ul>  
    <li>  
        <a href="images/fireworks.jpg" title="A fireworks display" onclick="showPic(this); return false;"> Fireworks </a>  
    </li>  
    <li>  
        <a href="images/coffee.jpg" title="A cup of black coffe" onclick="showPic(this); return false;"> Coffee </a>  
    </li>  
    <li>  
        <a href="images/rose.jpg" title="A red, red rose" onclick="showPic(this); return false;"> Rose </a>  
    </li>  
    <li>  
        <a href="images/bigben.jpg" title="The famous clock" onclick="showPic(this); return false;"> Big Ben </a>  
    </li>  
</ul>  
<div id="placeholder">  
    <img src="data:images/placeholder.gif" alt="my image gallery" >  
</div>  
<div id="description">  
    <p>Choose an image</p>  
</div>

<script type="text/javascript" src="scripts/showPic.js"></script>

<script type="application/javascript">  

// alert (description.childNodes.length);
// window.onload = countBodyChildren;
//var description = document.getElementById("description");
//alert (description.childNodes[2].nodeValue);


/***      showPic.js      ***/

/**
* Created by Administrator on 9/9/2015.
*/

/*
you can use this function to count how many children nodes the body element contains
*/
function countBodyChildren() {
var body_element = document.getElementsByTagName("body")[0];
alert(body_element.nodeType);
alert( body_element.childNodes.length );
}

function showPic(whicPic) {
var source = whicPic.getAttribute("href");
var text = whicPic.getAttribute("title");

var placeholder = document.getElementById("placeholder");  
var img = placeholder.getElementsByTagName("img")\[0\];  
img.setAttribute("src", source);

var description = document.getElementById("description");  
var desc\_p = description.getElementsByTagName("p")\[0\];  
desc\_p.firstChild.nodeValue = text;

}

/***      layout.css      ***/

body{
font-family: "Helvetica", "Arial", serif;
color: #333;
background-color: #ccc;
margin: 1em 10%;
}

h1{
color: #333;
/*background-color: #777;*/
}

a{
color: #c60;
background-color: transparent;
font-weight: bold;
text-decoration: none;
}

ul{
padding:;
}

li{
float: left;
padding: 1em;
list-style: none;
}

img {
display: block;
clear: both;
}

The structure are like the pic shows below :