js html 如何让每个li中的点击事件独立

代码如下这点击一个其他的就都隐藏了小弟想实现每个li中点击切换图片的功能还望高手赐教<!doctypehtml><html><Head></Head><body><scr... 代码如下 这点击一个 其他的就都隐藏了 小弟想实现每个li中 点击切换图片的功能 还望高手赐教

<!doctype html>
<html><Head>
</Head>
<body>
<script type="text/javascript">
function sel(obj)
{
var lis=document.getElementsByTagName("span");
var img=document.getElementsByTagName("img")

for(var i=0;i<lis.length;i++)
{
if(lis[i]!=obj)
{
img[i].style.display="none";
}
else
img[i].style.display="block";

}

}
</script>
<ul>
<li>
<div class='img'>
<a>
<img style='display:block' src='1.jpg' />
<img style='display:none' src='2.jpg' />
</a>
</div>
<div>
<span onclick="sel(this);">1</span>
<span onclick="sel(this);">2</span>
</div>
</li>

<li>
<div class='img'>
<a>
<img style='display:block' src='1.jpg' />
<img style='display:none' src='2.jpg' />
<img style='display:none' src='3.jpg' />
</a>
</div>
<div>
<span onclick="sel(this);">1</span>
<span onclick="sel(this);">2</span>
<span onclick="sel(this);">3</span>
</div>
</li>

<li>
<div class='img'>
<a>
<img style='display:block' src='1.jpg' />
<img style='display:none' src='2.jpg' />
</a>
</div>
<div>
<span onclick="sel(this);">1</span>
<span onclick="sel(this);">2</span>
</div>
</li>

</ul>
</body>

</html>
展开
 我来答
suxueduwang
2013-12-23 · TA获得超过654个赞
知道小有建树答主
回答量:209
采纳率:33%
帮助的人:239万
展开全部
<script type="text/javascript">
    /**
     * 由于原生 js 操作 ByTagName 比较不方便,所以建议通过 id 选择器来完成操作
     * 首先可以为每一个 a 标签添加 id,id = "mylink_*"
     * 然后在 sel 方法中,使用两个参数,一个是对应的 a 的 mylink_* 中的 *,另外一个就是其中的第几副 img
     * 根据 a 标签的 id ,对应操作 a 下对应下标的 img
     * 当然,你也可以通过父子节点 parentNode childNode 来完成,但是也比较麻烦
     */
    function sel(linkid, imgindex) {
        // 先找到 a 标签
        var link = document.getElementById("mylink_" + linkid);
        // 然后找 a 下的 img list
        var imgs = link.getElementsByTagName("img");
        var len = imgs.length;
        if (len > 0) {
            for (var i = 0; i < len; i++) {
                var img = imgs[i];
                // 根据下标显示隐藏
                if (i.toString() == imgindex.toString()) {
                    img.style.display = "block";
                } else {
                    img.style.display = "none";
                }
            }
        }
    } 
</script>
其中,你的 html 中 ul 中的 li 可以修改如下
    <li>
    <div class="img">
    <a id="mylink_1">
    <img style="display:block" src="1.jpg" alt="" />
    <img style="display:none"  src="2.jpg" alt="" />
    </a>
    </div>
    <div>
    <span onclick="sel(1,0);">1</span>
    <span onclick="sel(1,1);">2</span>
    </div>
    </li> 
    <li>
    <div class="img">
    <a id="mylink_2">
    <img style="display:block" src="1.jpg" alt="" />
    <img style="display:none"  src="2.jpg" alt="" /> 
    </a>
    </div>
    <div>
    <span onclick="sel(2,0);">1</span>
    <span onclick="sel(2,1);">2</span> 
    </div>
    </li>
摩惠然0iD
推荐于2017-10-12 · TA获得超过1634个赞
知道小有建树答主
回答量:1162
采纳率:100%
帮助的人:837万
展开全部
function sel(obj){
    //知道了点击的相应对象,那么通过DOM关系处理就行了
    var par=obj.patentNode;//span的父辈元素
    var lis=par.getElementsByTagName("span");//获取当前父辈元素下所有span   
    var img=par.parentNode.getElementsByTagName("img");//获取图像
    for(var i=0;i<lis.length;i++)
    {        
        //和if语句效果一样,改不改无所谓,少写点东西罢了       
        var display=lis[i]!=obj?"none":"block";
        img[i].style.display=display;
    }
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式