|
30鱼币
在做京东首页,然后有一个城市选择功能,要实现的功能是鼠标移入城市,下面的城市表格会出现,点击里面的城市会进行替换,同时样式红色样式会进行移动,加入这个选定的城市,
城市替换以及表格样式替换我做出来了,但是在我加入鼠标移入城市会移除隐藏类名让城市表格出现的功能后,城市替换的功能就不见了,两者无法并存。
代码放在附件里了,求大佬看看!!!
本帖最后由 isdkz 于 2022-5-4 11:50 编辑
选择器没有选到元素,
- // 城市选择
- // 实现思路
- // 声明变量获取表格中的a标签以及城市选择标签,给表格标签添加active,
- // 给城市加入鼠标点击事件,点击之后与city进行文字更换,同时给表格内的城市添加active类名,为避免之前的表格类名依然存在,需要先进行一次全部删除
- window.onload = function(){
- // 获取城市列表
- var tds = document.querySelectorAll(".citylist table a"); // 改了这里
- // 获取选定城市
- var city = document.querySelector(".city-selected")
- var hea = document.querySelector('.header-box-city > span');
- var box = document.querySelectorAll('.citylist > div');
- hea.onmouseover = function(){
- for(let e = 0;e < box.length;e++){
- box[e].classList.remove('Stealth');
- }
- }
- // 给所有td单元格添加一个点击事件
- for(let i = 0;i < tds.length;i++){
- // 批量绑定点击事件
- tds[i].onclick = function(){
- // 验证是否有绑定点击事件成功
- // console.log("我当前移入的是" + (i+1) + "城市")
- // 将表格头部文字信息替换成当前点击的对象里的内容
- city.innerHTML = this.innerHTML;
- // 当前点击的对象添加一个active
- for(let k = 0; k < tds.length;k++){
- // 先将表格里所有的单元格移出active类名
- tds[k].classList.remove('active')
- }
- console.log(this)
- this.classList.add('active')
- }
- }
-
-
- // var wdjd = document.querySelector(".header-box-loginlist > Stealth")
- // var wdjda = document.querySelector(".dropdown > wdjdaa")
- // wdjda.onmouseover = function(){
- // wdjd.classList.remove('Stealth')
- // }
- }
复制代码
|
|