html插入元素到最后子元素,HTML元素其插入到DOM

When I do that与任何Chrome或Safari(包括基于WebKit的浏览器),如果我检查与内置工具的元素,它没有style.display财产可言,因此使用的display: block默认div风格。 (Here's a version在div中有一些文字,所以用DOM检查器查看和查找更容易)。

所以我怀疑问题在于别处。例如,是否存在可能在WebKit上失败的干预代码,因此d.show();永远不会被调用?这当然可以解释它。使用Chrome或Safari中的内置工具可以很容易地在创建div的代码上设置断点并遍历它。

回复你的问题:

...我怎么能检查是否元素还未插入到DOM?

这个问题在这里问在计算器上刚刚,而具体到jQuery的其中一个答案是相当优雅:

if (d.closest("body").length == 0) {

// It's not in the DOM yet

}

更新:回复如下

您的评论

用Firefox浏览此测试页。 div有“style = display:block;”明确定义。在Webkit下,它有空的样式属性。我在Firefox和Safari中使用内置的检查器。

啊,没关系,所以这个问题是不是在WebKit浏览器一个display: none(你有关的问题发言使我误入歧途),而火狐(和其他可能的Gecko浏览)最终不得不display: block上元素。

我可能会接近这个是这样的:

var d = $("

d.addClass("hidden");

$("body").prepend(d);

d.removeClass("hidden");

...这个CSS:

.hidden {

display: none;

}

这样,你知道你不会最终得到一个style.display属性。

更新2:你可以做的另一件事是直接删除style.display属性:

var d = $("

Hi there
");

d.hide();

$("body").prepend(d);

d.show();

d[0].style.display = "";

你提到的效果,所以如果你在做fadeIn或类似的东西,使用回调:

var d = $("

Hi there
");

d.hide();

$("body").prepend(d);

d.fadeIn(function() {

this.style.display = "";

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值