有没有人可以解救一下我啊??项目描述:关于js的问题,我在一id为AreaID的div里面动态生成n个a标签,每个a标签带有事件,其事件的作用是使得点击此a标签时a则更换css样式(即换className),同时使得其本div下的其他所有a标签的className统一改变。问题描述:
当点击div里面动态生成的任一a标签时,其className瞬间会变,但是马上双变回去了,即没有达到我要的改变css效果。
动态生成a标签,我分别用innerHTML、creatElement,问题还是一样。//html的div<div id="divID"></div>//批量处理a样式的函数
function SelectOption(DivID,EventSrc){
  //DivID是指如上如指的div的id变量
    //EventSrc是指向a标签本身,传参过来时是用了this关键字
  var div = document.getElementById(DivID);
  var as = div.getElementsByTagName("a");
    for(var i=0;i<as.length;i++){
        as[i].className="";
    }
    EventSrc.className="BoldACss";
}//动态生成的a标签的点击事件
function xxx()
{
               var aArr = new Array();
               for(var i=0;i<10;i++){
                     var a=document.createElement("a");
                     a.setAttribute("href","javascript:void(0);");
                     a.setAttribute("onclick","SelectOption('divID',this");
                     aArr[i] = document.getElementById("divID").appendChild(a);
                     aT= document.createTextNode("链接词");
                     aArr[i].appendChild(aT);
                }
}

解决方案 »

  1.   


    a.setAttribute("onclick","SelectOption('divID',this");
    改成
    a.setAttribute("onclick","SelectOption('divID',this)");
      

  2.   

    function xxx()
    {
                   var aArr = new Array();
                   for(var i=0;i<10;i++){
                         var a=document.createElement("a");
                         a.setAttribute("href","javascript:void(0);");
                         a.setAttribute("onclick","SelectOption('divID',this");
                         aArr[i] = document.getElementById("divID").appendChild(a);
                         aT= document.createTextNode("链接词");
                         aArr[i].appendChild(aT);
                    }
    }
      

  3.   

    谢谢您的回答,上面这里是我刚刚复制出错了,我的项目里面是没有错的。我已经知道问题所在了,是ajax的执行流程上的问题,我现在已经解决了。
      

  4.   

    额...已经解决了啊?...JQuery写多了纯JS代码看的蛋疼...忍不住写了个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></title>
        <script src="../jquery/jquery-1.5.2.min.js" type="text/javascript"></script>
        <style type="text/css">
            .BoldACss { font-weight: bold; }
            A { margin: 10px; text-decoration: underline; }
        </style>
        <script type="text/javascript">        $(document).ready(function () {            var divID = $("#divID");
                function createA() {
                    //创建A标记
                    for (var i = 0; i < 10; i++) {
                        divID.append($("<a href='javascript:void(0)' >链接词</a>"));
                    }
                    var arrA = divID.find("a");
                    //绑定事件
                    arrA.click(function () {
                        //移除所有A的样式
                        arrA.removeClass();
                        //当前点击的加上样式
                        $(this).addClass("BoldACss");
                    });
                }
                createA();        });
        </script>
    </head>
    <body>
        <div id="divID">
        </div>
    </body>
    </html>