onClick更改列表样式

时间:2010-12-18 09:46:40

标签: javascript-events onclick

假设我有一个简单的清单:

  <ul>
    <li class="notClicked">1</li>
    <li class="notClicked">2</li>
    <li class="notClicked">3</li>
  </ul>

除了单击之外,我可以点击一个“li”更改所有li的样式吗?

因此,如果我点击“li”数字2,那么列表将如下所示:

  <ul>
    <li class="notClicked">1</li>
    <li class="clicked">2</li>
    <li class="notClicked">3</li>
  </ul>

因此,如果我点击第一个“li”,那么它将点击课程,而其他人则不会点击。

如果你想玩它,这里是jsbin:http://jsbin.com/ucuca4/edit

使用Prototype或纯JavaScript。

3 个答案:

答案 0 :(得分:2)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <title></title>
        <script language="JavaScript" type="text/javascript">
            /*<![CDATA[*/
            var Lst;

            function CngClass(obj){
             if (Lst) Lst.className='';
             obj.className='Clicked';
             Lst=obj;
            }

            /*]]>*/
        </script>
        <style>
            .notClicked {color: black}
            .Clicked {color: red}
        </style>
    </head>

    <body>
        <ul>
            <li>
                <a onclick="CngClass(this);" href="#" class="notClicked">1
                </a>
            </li>
            <li>
                <a onclick="CngClass(this);" href="#"  class="notClicked">2
                </a>
            </li>
            <li>
                <a onclick="CngClass(this);" href="#"  class="notClicked">3
                </a>
            </li>
        </ul>
    </body>
</html>

答案 1 :(得分:2)

为什么要改变对方的风格?您可能想要更改单击元素的样式。

如果是这样,你可以使用jQuery

示例:

<li class = "notClicked">element 1</li>
<li class = "notClicked">element 2</li>
<li class = "notClicked">element 3</li>

$('.notClicked').click(function()
{
    $(this).addClass('active');
});

答案 2 :(得分:1)

<script>
    function changeClass(){
        document.getElementById("idElement").setAttribute("class", "Clicked");
    }
</script>

<ul>
    <li class="notClicked" >1</li>
    <li class="notClicked" onClick="changeClass()" id="idElement">2</li>
    <li class="notClicked">3</li>
</ul>