JS === 实现通过点击td 跳转相应的图片

Posted rabbit-lin0903

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS === 实现通过点击td 跳转相应的图片相关的知识,希望对你有一定的参考价值。

JS ========== 通过点击每个td 实现 跳转图片

样式:

.focusbackground:#0f0

结构:

<td class = "focus"></td>

<td></td>

<td></td>

<img src = "img/1.jpg " >  // 在img下面有三张图片分别是 1.jpg 2.jpg  3.jpg

 

<script>

// 获取td 

var tds = document.querySelectorAll("td")   // 通过css选择器 来获取元素 ==> 得到的是一个数组

// 遍历数组,为每个td添加点击事件

for(var i = 0; i < tds.length ; i++) 

tds[i].setAttribute("number", i + 1)   // ====解决i 一直都是3的方法。i+ 1 的原因是 img 的路径 是从 1,2,3开始的

tds[i].onclick = function()   // 在这里想根据i的值获取每个td,然后为每个td添加点击事件,但是函数放在了for循环里面,当点击事件还未点击执行的时候,for循环已经结束了。

            // 所以这里的i 每次取到的都是 3 =====》解决方法,在for 循环的过程中,获取到 具体的 i 值,并把它作为td的一个属性的属性值保存起来,

            // 这样当想获得每个td的 时候, 从 属性值里面获取即可

 

var index = this.getAttribute("number") // 之前设置了一个属性 number 存了 i+ 1,这里将这个值取出来

var src = "img/" + index + ".jpg"     // index 作为图片的序号 重新给了src路径,就可以改变图片的路径了

// 下面这两行代码 是为了实现,当前显示的td 有背景色,点击每个td的时候会有一个背景色

document.querySelector(".focus").className = "";    // 清除当前的旧交点 当前 第一个td已经设置了背景色

this.className = ".focus"     // 点击每个td的时候会给它添加一个focus类,这个类会改变td背景色

</script>

 

今日学习要点:

1. 将点击事件函数写在了for循环里面的时候,for循环会最先执行完毕,然后点击函数才会能够点击。
==== 所以要注意 for(var i)i 的问题。

2. className

div.className== 内置属性,获取class名字的时候,要使用className 

以上是关于JS === 实现通过点击td 跳转相应的图片的主要内容,如果未能解决你的问题,请参考以下文章

如何用js实现点击按钮下载文件

我要把页面上的图片由点击按钮存到手机相册指定路径里,js代码怎么写?(.net c#)

PHP中点击A 标签怎么执行相应事件呢

如何为图片添加热点链接?

php中如何点击完按钮后在本页面实现跳转

一个页面中有多个图片,然后点击每一个图片就会有显示一个带有图片的div出现,这种情况用js怎么做?