example07.html 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. #container {
  12. margin: 10px 20px;
  13. }
  14. #container li {
  15. float: left;
  16. list-style: none;
  17. width: 60px;
  18. height: 60px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div id="container">
  24. <img src="img/hello.jpg" alt="">
  25. <ul>
  26. <li><img src="img/thumb-1.jpg" alt=""></li>
  27. <li><img src="img/thumb-2.jpg" alt=""></li>
  28. <li><img src="img/thumb-3.jpg" alt=""></li>
  29. </ul>
  30. </div>
  31. <script src="js/common.js"></script>
  32. <script>
  33. +function() {
  34. // 通过querySelector用父子选择器获取img标签
  35. var img = document.querySelector('#container>img');
  36. function showPhoto(evt) {
  37. evt = evt || window.event;
  38. // 获取事件源(谁引发了事件)
  39. var target = evt.target || evt.srcElement;
  40. img.src = "img/" + target.parentNode.photoName;
  41. }
  42. var imgNames = ["hello.jpg", "goodbye.jpg", "oneshit.jpg"];
  43. // 通过querySelectorAll用后代选择器获取指定的li标签
  44. // var ul = document.querySelector("#container>ul");
  45. // 通过元素获取相关节点的属性:
  46. // parentNode - 获取父节点
  47. // children - 获取所有子节点
  48. // nextSibling - 获取相邻下一个兄弟节点
  49. // previousSibling - 获取相邻上一个兄弟节点
  50. var ul = img.nextSibling.nextSibling;
  51. console.log(ul);
  52. for (var i = 0; i < ul.children.length; i += 1) {
  53. ul.children[i].photoName = imgNames[i];
  54. bind(ul.children[i], "mouseover", showPhoto);
  55. }
  56. }();
  57. </script>
  58. </body>
  59. </html>