关于 li 点击变色的问题,可用JS来解决。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 li 点击变色的问题,可用JS来解决。相关的知识,希望对你有一定的参考价值。

一段很简单的代码:
<ul>
<li><small>文字</small></li>.
...
</ul>
请教一下如何实现这样的效果:点击任意li,只有这个li元素产生变化,比如背景色,li里的small元素也变化,比如改变颜色,重点是只有点击的li产生变化,点击其他li后这个就恢复原来的状态。问题似乎很简单,可查了网上很多类似的问题,都没有很好解决。本人JS基础较差,不知哪位大大能提供一个简单的代码?谢谢了。
谢谢,我测试一下。忘了说一个细节。结构是这样的<li><small>次要文字<small>主要文字</li>,点击li后如何取得子元素small即次要文字要变化,另外才是主要文字的变化。如何取得这个子元素?
我的li结构有好几十个,如果都定义个id会不会复杂了,另外文档中我只取某个div下的li实现这个效果,该怎么写?byid然后再bytagname吗?

参考技术A <li onclick='g(this.id)' id=w><small>文字</small></li>.
<li onclick='g(this.id)' id=i><small>文字</small></li>.
<li onclick='g(this.id)' id=y><small>文字</small></li>.
<script type=text/javascript>
function g(x)

d=document.getElementsByTagName('li')
for(p=d.length;p--;)
if(d[p].id!=x)d[p].style.backgroundColor=''/*其他*/
elsed[p].style.backgroundColor='red'/*点击的*/


</script>本回答被提问者和网友采纳
参考技术B 用jquery插件
function a(e)
$("li").css("background","");
e.style.background = "#77777"

在li上加onclick = "a(this)"

angular中实现li或者某个元素点击变色的两种方法

答案只需要点击标题下面的蓝色字【web前端开发】关注即可。

本篇文章主要介绍了angular中实现li或者某个元素点击变色的两种方法,非常具有实用价值,需要的朋友可以参考下

本文介绍了angular中实现li或者某个元素点击变色的两种方法,分享给大家,希望对大家有帮助

先说一种最直接了当的不需要js控制。

方法一:直接在用ng-class就可以控制:

<p ng-click="state=1;" ng-class="{active:state==1}">浮伤年华</p>
<p ng-click="state=2;" ng-class="{active:state==2}">忧伤说笑</p>

在style里面设置如下:

<style type="text/css">  .active{   color:red;  }</style>

这样就会点哪个哪个变色了。

方法二:style同上,hetml如下:

<div ng-controller="active">
<p ng-click="isActive(1)" class="{{i==1?'active':''}}">剧情再美</p>
    <p ng-click="isActive(2)" class="{{i==2?'active':''}}">终究是戏</p>
</div>

js代码如下:

$scope.isActive=function(i){  $scope.i=i; }

若想要第一个默认为有颜色的,则在js里面加如下即可:

$scope.i=1;

完~



广告内容


以上是关于关于 li 点击变色的问题,可用JS来解决。的主要内容,如果未能解决你的问题,请参考以下文章

angular中实现li或者某个元素点击变色的两种方法

关于CSS的LI列表的背景变色功能

javascript获取当前<ul>中点击的<li> 的值

Jquery如何给ul下每个li都加上点击事件

jQuery实现多个li点击切换和显示隐藏

鼠标移动DIV后变色