我有两个函数,分别创建和删除div的创建函数里面有:
$("#mainContent").append('<div style="width:'+width+'px; height:'+height+'px;border:1px solid green" id="'+value+'0'+'"></div>');
$("#mainContent").append('<div style="width:'+width+'px; height:'+height+'px;border:1px solid green" id="'+value+'1'+'"></div>');然后删除函数里面是:
$("#"+value+"0").remove();
$("#"+value+"1").remove();现在的问题是,创建可以成功,但是删除却不成功,
用document.getElementById(value+"1")得到结果却是null,这是为何?JavaScript

解决方案 »

  1.   

    你这样创建试试:
    var div = document.createElement("div");
    $(div).attr("id", value + "0");
    $(div).attr("style", "width:" + width + "px; height:" + height + "px;border:1px solid green");
    $(div).appendTo("#mainContent");
      

  2.   

    创建div的函数:
    function AddGateway(htmlContainer, value, width, height){
            if(value) var str = value+"/"+"time"+"/0";
            $("#mainContent").append('<div style="width:'+width+'px; height:'+height+'px;border:1px solid green" id="'+value+'0'+'"></div>');
            $.ajax({
                    async:false,
                    url:"php/MSLine_for_ping.php",
                    data:{selectedValue: str},
                    dataType:"json",
                    success:function(rtnData){
                            FusionCharts.printManager.enabled(true);
                            var chartObj = new FusionCharts( 'swf/MSLine.swf',  'flash-chart', width, height);
                            chartObj.setJSONData(rtnData);
                            chartObj.render(value+"0");
                    }
            });        if(value) str = value+"/"+"time"+"/1";
            $("#mainContent").append('<div style="width:'+width+'px; height:'+height+'px;border:1px solid green" id="'+value+'1'+'"></div>');
            $.ajax({
                    async:false,
                    url:"php/MSLine_for_ping.php",
                    data:{selectedValue: str},
                    dataType:"json",
                    success:function(rtnData){
                            FusionCharts.printManager.enabled(true);
                            var chartObj = new FusionCharts( 'swf/MSLine.swf',  'flash-chart', width, height);
                            chartObj.setJSONData(rtnData);
                            chartObj.render(value+"1");
                    }
            });
    }删除div的函数:
    function RemoveGateway(htmlContainer, value){
            $("#"+value+"0").remove();
            $("#"+value+"1").remove();
    }但是我觉得应该没啥问题吧value是诸如8.8.8.8这样的ip字符串,另外少某个头文件会不会造成这个现象?
      

  3.   

    不要觉得  要确认var domstr = '<div style="width:'+width+'px; height:'+height+'px;border:1px solid green" id="'+value+'1'+'"></div>';
    $("#mainContent").append(domstr );alert(domstr);你看看打印出来的 id 是什么
      

  4.   

    把两个方法最前面把value的值alert出来,看下是什么。
      

  5.   

    回复LS的各位,
    不好意思,我后来又看了下,我一楼用document.getElementById(value+"1")得到结果不是null,而是某个对象。那问题就是为啥$("#"+value+"1").remove()没有将那个div删除,
      

  6.   


    value是诸如8.8.8.8这样的ip字符串“.”是css的class类选择器啊,结果$("#8.8.8.81")成了这样。明显错误
      

  7.   


    value是诸如8.8.8.8这样的ip字符串“.”是css的class类选择器啊,结果$("#8.8.8.81")成了这样。明显错误原来如此,我在使用value前加一句value = value.replace(/\./g,"o")就好了,谢谢了