如何删除.append()然后添加.append()

时间:2013-05-29 19:59:24

标签: javascript swfobject

这是为了显示诊断页面的检查。我有一个.append(not_ok)但是当swf文件加载100%时我想删除not_ok append然后添加一个.append(ok)。

function callbackfunk(e){
  $(".FlashNotLoaded").css("color", "red").append(not_ok);
  var timer = setInterval(function(){
    if(e.ref.PercentLoaded() === 100){
        $(".FlashLoaded").remove();
        $(".FlashLoaded").css("color", "green").append(ok);
    }
  }, 1000);
}

swfobject.embedSWF("/static/diag/countdown.swf", "flashDiv", "550", "400", "8.0.0", "expressInstall.swf", flashvars, params, attributes, callbackfunk);

.append(not_ok)将被删除,但.append(ok)将不会替换它。我试过了 .replaceWith(ok),但这似乎也无效。

3 个答案:

答案 0 :(得分:2)

通常使用jQuery,您可以将两个页面都保留在同一位置。 jQuery(notOkSelector).hide();jQuery(okSelecter).show();

隐藏使对象display:none,并显示反转。

编辑:只要对象已经在DOM中(默认情况下为display:none;)...

显示notLoaded

$(".FlashLoaded").hide(); // it doesn't hurt to hide an already hidden object.
var notLoaded = $(".FlashNotLoaded");
notLoaded.css( 'color', 'red' );
notLoaded.show();

隐藏notLoaded并显示ok

$(".FlashNotLoaded").hide();
var flashLoaded = $(".FlashLoaded");
flashLoaded.show();
flashLoaded.css( 'color', 'green' );

编辑包括您的上述代码:您的coude可能如下所示......

function callbackfunk(e){
  $(".FlashLoaded").hide();
  $(".FlashNotLoaded").css("color", "red").show();
  var timer = setInterval(function(){
    if(e.ref.PercentLoaded() === 100){
        $(".FlashNotLoaded").hide();
        $(".FlashLoaded").css("color", "green").show();
        clearInterval(timer);
    }
  }, 1000);
}

答案 1 :(得分:0)

这一行

$(".FlashLoaded").remove();

从DOM中删除元素,因此以下行不能向DOM附加任何内容

$(".FlashLoaded").css("color", "green").append(ok);

我想您想要删除ok

答案 2 :(得分:0)

您是否要添加新的HTML标记?如果是这样,你可以使用jQuery replaceWiht(),它用一个新元素替换现有元素。