如何移除身体前面的容器

时间:2016-04-01 07:41:59

标签: javascript jquery html

我已经创建了一个容器并将其添加到身体中:

$test = shell_exec("/www/dhcp.sh");
var_dump( explode(' ', $test ) );

现在我想在几秒钟后淡出容器:

// Create container
var container = "<div class='foo'> ... </div>";

// Prepend it to the body
$("body").prepend(container);

然而,它说undefined不是一个函数。我非常确定setTimeout(function() { container.fadeOut(); }, 3000); 会有效,但我有很多$(".foo").fadeOut()个容器,我不想为每个容器分配一个单独的ID。

5 个答案:

答案 0 :(得分:4)

container var指向jq对象而不是字符串:

var container = $('<div class="foo"> ... </div>');

// Prepend it to the body
$("body").prepend(container);

setTimeout(function() {
   container.fadeOut();
}, 3000);

现在,container有一个fadeOut()方法,而不是一个愚蠢的字符串。

编辑:根据请求,创建部分的香草版本:

var container = document.createElement("div");
container.className="foo";
container.innerHTML= "<b>Hello world</b>";
document.body.insertBefore(container, document.body.firstChild);

vanilla中的fadeOut部分:

<style> 
        div.foo{ opacity: 1; transition: 1000ms opacity;}
        div.foo.fade { opacity: 0; }
</style>

  setTimeout(function(){ container.classList.add("fade");}, 3000);

答案 1 :(得分:2)

应该是这样的:

var container = $("<div class=`foo`><h1>Hello World</h1></div>")
$("body").prepend(container);
setTimeout(function() {
    container.fadeOut();
}, 3000);

工作代码here

答案 2 :(得分:0)

试试这样:

$(document).ready(function(){
   var container = $("<div class='foo'><h1>Something...</h1></div>")
   $("body").prepend(container);
   setTimeout(function() {
   container.fadeOut();
   }, 3000);
});

答案 3 :(得分:0)

您正在将一个字符串传递给您的容器&#39;变量。 fadeOut功能仅适用于DOM对象。不是字符串。使用以下命令将字符串转换为DOM对象:

var container = $('Your Code Here');

答案 4 :(得分:-1)

container是字符串var。容器字符串指示的DOM元素可以像$('div.foo')一样访问。因此,fadeout来电将改为 - &gt;

setTimeout(function() {
    $('div.foo').fadeOut();
}, 3000);