Javascript 在包装器div之后插入div
正如标题所说,我正试图在我的包装器div之后插入“cookie”警告。我也尝试过使用append,但它会在执行所有其他操作后添加代码,因此div id包装器会包含大量代码,然后在cookiebar div的末尾Javascript 在包装器div之后插入div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,正如标题所说,我正试图在我的包装器div之后插入“cookie”警告。我也尝试过使用append,但它会在执行所有其他操作后添加代码,因此div id包装器会包含大量代码,然后在cookiebar div的末尾 var cname = "consentCookie"; var cvalue = "on"; var exdays = "20"; var cookiehtml = '\ <div id="cookiebar">\ We use cookies to tra
var cname = "consentCookie";
var cvalue = "on";
var exdays = "20";
var cookiehtml = '\
<div id="cookiebar">\
We use cookies to track usage and preferences. \
<a href="#" id="enablecookies" onclick="setCookie();">I Understand.</a>\
</div>';
function setCookie() {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
$('#cookiebar').hide();
}
function getCookie() {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
}
return "";
}
$(document).ready(function(){
if(getCookie() == ''){
$('#wrapper:first-child').after(cookiehtml);
}
else if(getCookie() == 'on'){
$('#cookiebar').hide();
}
});
var cname=“同意Cookie”;
var cvalue=“on”;
var exdays=“20”;
var cookiehtml=\
\
我们使用cookies来跟踪使用情况和偏好\
\
';
函数setCookie(){
var d=新日期();
d、 设置时间(d.getTime()+(exdays*24*60*60*1000));
var expires=“expires=“+d.toutString();
document.cookie=cname+“=”+cvalue+”;“+expires;
$('#cookiebar').hide();
}
函数getCookie(){
变量名称=cname+“=”;
var ca=document.cookie.split(“;”);
对于(var i=0;i首先,我不确定您是否按预期使用了:first child
。您可能应该简单地使用:first
或:eq(0)
但即使如此,您也可能希望使用insertAfter()
而不是after()
因此,应该是:
$(document).ready(function(){
if(getCookie() == ''){
$(cookiehtml).insertAfter( '#wrapper');
}
...
或者,如果您希望cookiehtml成为父包装器的第一个节点,请使用prependTo()
:
首先,我不确定您是否按预期使用了:first child
。您可能应该简单地使用:first
或:eq(0)
但即使如此,您也可能希望使用insertAfter()
而不是after()
因此,应该是:
$(document).ready(function(){
if(getCookie() == ''){
$(cookiehtml).insertAfter( '#wrapper');
}
...
或者,如果您希望cookiehtml成为父包装器的第一个节点,请使用prependTo()
:
如果希望cookiehtml
成为包装器
div中的第一个元素,在jQuery中可以使用prepend
:
if(getCookie() == ''){
$('#wrapper').prepend(cookiehtml);
}
这将使HTML DOM看起来像:
<div id="wrapper">
<div id="cookiebar">
...
</div>
...
</div>
...
...
如果希望cookiehtml
成为包装器
div中的第一个元素,在jQuery中可以使用prepend
:
if(getCookie() == ''){
$('#wrapper').prepend(cookiehtml);
}
这将使HTML DOM看起来像:
<div id="wrapper">
<div id="cookiebar">
...
</div>
...
</div>
...
...
您是否尝试过$(“#包装器”).after(cookiehtml)
?如果您希望将cookie代码插入到#包装器
之后,应该可以:$(“#包装器”).after(cookiehtml)
为什么要使用:第一个孩子
?我应该提到cookiehtml应该是wrapper的第一个孩子,现在只使用$(“#wrapper”)。在(cookiehtml)之后,它是在兄弟级别上的。cookie首先是在哪里创建的?我添加了这段代码,请检查更新您是否尝试过($(“#wrapper”)。在(cookiehtml)之后
?如果你想把cookie代码直接插入到#wrapper
之后,这应该可以:$(“#wrapper”)。在(cookiehtml)之后;
为什么要使用:第一个孩子
?我应该提到cookiehtml应该是wrapper的第一个孩子,现在只使用$(“#wrapper”)。在(cookiehtml)之后;它是在兄弟级别上,cookie首先是在哪里创建的?我添加了一点代码检查更新最后一点是我想要准备的谢谢我会在5分钟内检查这个作为答案最后一点是我想要准备的谢谢我会在5分钟内检查这个作为答案这是正确的answe谢谢,但上面的人是更快:P这是正确的答案谢谢但是上面的人更快:P
<div id="wrapper">
<div id="cookiebar">
...
</div>
...
</div>