推荐榜 短消息 big5 繁体中文 找回方式 手机版 广 广告招商 主页 VIP 手机版 VIP 界面风格 ? 帮助 我的 搜索 申请VIP
客服
打印

[求助] 求javascript添加一句改颜色

购买/设置 醒目高亮!点此感谢支持作者!本贴共获得感谢 X 7

求javascript添加一句改颜色

http://www.webdm.cn/webcode/7bbe ... d-8571bcc9078f.html
此文章介绍了一个简短代码, 实现了faq系统, 也就是点击一个问题则该问题的答案被展开, 并将其他答案收缩.

求高手给添加一两句, 使得点击一个问题时, 该问题(不是答案)的颜色变红, 区别于其他问题, 之前变红的其他问题颜色也变回黑色.

点此感谢支持作者!本贴共获得感谢 X 7
TOP

<html>
<head>
<title>Demo</title>
<script language="javascript">
function resetColor(){
  var src = document.getElementById("src");
  var desc = document.getElementById("desc");
  if( !desc ){
    return;
  }
  var value = src.value.toLocaleLowerCase()
  var availableColor = ["red","blue","green"];
  for(var i=0; i<availableColor.length; i++){
    if(availableColor.toLocaleLowerCase()
        == value){
      desc.style.color=value;
    }
  }
}
</script>
</head>
<body onload="resetColor()">
<input id="src" type="text" value="red" onkeyup="resetColor()"><br>
<div id="desc"> Hello World! </div>
</body>
</html>

TOP

谢谢, 不过这个代码好像无关, 有没有其他的?

TOP

这个你可以通过控制CSS样式实现,你可以定义一个层,设定它的4个点击参数的颜色,则可实现你所说的颜色变动

TOP

这个原来的代码写得比较乱,我添加了三句可以实现你要的功能。但是更建议你自己理解原理,或者用jQuery等更方便。
<!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">
        <head>
                <title>JavaScript实现简单的FAQ页面的折叠效果 - www.webdm.cn</title>
<script type="text/javascript">
var lastFaqClick=null;//上次点击的faq
window.onload=function(){
  var faq=document.getElementById("faq");
  var dls=faq.getElementsByTagName("dl");
  for (var i=0,dl;dl=dls;i++){
    var dt=dl.getElementsByTagName("dt")[0];//取得标题
     dt.id = "faq_dt_"+(Math.random()*100);
     dt.onclick=function(){
       var p=this.parentNode;//取得父节点
        if (lastFaqClick!=null&&lastFaqClick.id!=this.id){
          var dds=lastFaqClick.parentNode.getElementsByTagName("dd");
          for (var i=0,dd;dd=dds;i++)
            dd.style.display='none';
                                        lastFaqClick.style.color='black';//------------------new
        }
                                 this.style.color='black';//------------------new
        lastFaqClick=this;
        var dds=p.getElementsByTagName("dd");//取得该父节点所有的子节点,也就是所有的答案
        var tmpDisplay='none';
                         if (gs(dds[0],'display')=='none'){
          tmpDisplay='block';
                                 this.style.color='red';//------------------new
                         }
        for (var i=0;i<dds.length;i++)
          dds.style.display=tmpDisplay;
      }
  }
}
/**
*取得元素的真实css属性
*written in 06.7 sheneyan
*/
function gs(d,a){
  if (d.currentStyle){
    var curVal=d.currentStyle[a]
  }else{
    var curVal=document.defaultView.getComputedStyle(d, null)[a]
  }
  return curVal;
}
</script>
<style type="text/css">
*,html,body{margin:0;padding:0}
#faq dt{font-weight:bold;cursor:pointer}
#faq dd{display:none;}
</style>

        </head>
<body>
<ul id="faq">
<li>
<dl><dt>问题1 </dt><dd>答:1 </dd></dl>
</li>
<li>
<dl><dt>问题2 </dt><dd>答:2 </dd></dl>
</li>
<li>
<dl><dt>问题3 </dt><dd>答:3 </dd></dl>
</li>
<li>
<dl><dt>问题4 </dt><dd>答:4 </dd></dl>
</li>
</li>
</ul>

<br />

</body>
</html>

TOP

sis是万能的啊. 都在这讨论起代码了.

TOP

非常感谢auian98朋友, 代码很完美!

TOP

虽然没看懂,不过看了楼上的回复,改颜色以后说不定我也用得到

TOP

引用:
原帖由 引觞隐伤 于 2013-2-16 01:54 发表
虽然没看懂,不过看了楼上的回复,改颜色以后说不定我也用得到
从本贴直接复制代码是不行的.有错误, 是本论坛的问题. 你把添加的3句直接加到原代码,是完美的

TOP

不是盖的 SIS真是藏龙卧虎 什么桌面上不能解决的问题 这里一定能有高手给你出主意搞定 感谢SIS感谢高人

TOP



当前时区 GMT+8, 现在时间是 2025-6-17 20:33