Javascript 在包装器div之后插入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

正如标题所说,我正试图在我的包装器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 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>