onClick更改列表样式*但是

时间:2010-12-18 10:37:45

标签: javascript javascript-events onclick

从上一个问题的答案中回答:onClick change list styles

不是更改所有类,而是更改所有类,但使用特定类更改“li”。因此,如果其中一个li的类名为“dontChange”,则其类名不会改变,但所有其他名称都将改变。

  

单击某个项目时,应将其更改为“单击”除“dontChange”为“notClicked”的项目之外的所有其他项目。当您双击“clicked”或“notClicked”项时,它应该更改为“dontChange”,其他所有内容都应更改为“notClicked”。

谢谢,Yan

3 个答案:

答案 0 :(得分:1)

试试这个

<!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='';
 if(obj.className=='dontChange')
 {
     obj.className='dontChange';
 }
 else
 {
 obj.className='Clicked';
 Lst=obj;
 }

}

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

</style></head>

<body>

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

</body>


</html>

答案 1 :(得分:0)

我认为你应该查看jQuery。您可以编写一个这样的选择器,将类添加到没有类li的所有dontChange

$('li').not('.dontChange').addClass('changed');

答案 2 :(得分:0)

使用上一个答案中的代码,您需要将其更改为此类

    <!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">
var Lst;

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

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

<body>

<ul>
<li>
<a onclick="CngClass(this);" href="#" class="dontChange">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>

这简单地说,如果它是一个特定的类,那么改变它。

在FF3.61中测试