Javascript 附加的内容无法获得正确的CSS效果
我想在Javascript 附加的内容无法获得正确的CSS效果,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,我想在DIV中添加一个HTML元素,但是这个元素没有像原始元素那样获得正确的CSS 我有一个下拉菜单,想在上面添加新的行 我的HTML代码: <br/><br/> <a href="#" class="append">Append it</a> <div class="container"> <div class="row"> <div class="col-sm-3">
DIV
中添加一个HTML元素,但是这个元素没有像原始元素那样获得正确的CSS
我有一个下拉菜单,想在上面添加新的
行
我的HTML代码:
<br/><br/>
<a href="#" class="append">Append it</a>
<div class="container">
<div class="row">
<div class="col-sm-3">
<h5>Normal Dropdown Button</h5>
<div class="panel panel-default">
<div class="panel-body">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span data-bind="label">Select One</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<div id="append">
</div>
<li><a href="#">Item 1</a></li>
<li><a href="#">Another item</a></li>
<li><a href="#">This is a longer item that will not fit properly</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<br/><br/>
$( document.body ).on( 'click', '.append', function( event ) {
$("#append").append("<li><a href=\"#\">Item 1</a></li>");
return false;
});
正常下拉按钮
选择一个
我的Javascript代码:
<br/><br/>
<a href="#" class="append">Append it</a>
<div class="container">
<div class="row">
<div class="col-sm-3">
<h5>Normal Dropdown Button</h5>
<div class="panel panel-default">
<div class="panel-body">
<div class="btn-group">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span data-bind="label">Select One</span> <span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<div id="append">
</div>
<li><a href="#">Item 1</a></li>
<li><a href="#">Another item</a></li>
<li><a href="#">This is a longer item that will not fit properly</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<br/><br/>
$( document.body ).on( 'click', '.append', function( event ) {
$("#append").append("<li><a href=\"#\">Item 1</a></li>");
return false;
});
$(document.body).on('click','.append',函数(事件){
$(“#append”)。append(“”);
返回false;
});
这里有一个活生生的例子:
编辑我的主要问题:
单击APPEND IT,然后通过单击Select One按钮(下拉菜单)检查APPEND元素,您将看到它没有像其他按钮一样获得正确的CSS(项目测试)。您已经在
ul
和样式目标中嵌套了div
。下拉菜单>li>a
,因此div正在打破这一点。div
不能是ul
的直接子级,li
不能是div
的直接子级。如果希望在添加div
时将它们显示在菜单的开头,则可以将div
嵌套在ul
中,然后将li
附加到div
中,而不是将div
嵌套在中。如果您不在乎它们出现在哪里,您可以将它们添加到底部
$(document.body).on('click','.append',函数(事件){
$(“.dropdown menu”).prepend(“”);
返回false;
});代码>
.btn输入{
显示:块;
}
.btn输入.btn.form-control{
文本对齐:左对齐;
}
.btn input.btn.form-control范围:第一个子项{
左:10px;
溢出:隐藏;
位置:绝对位置;
右:25px;
}
.btn input.btn.form-control.caret{
页边顶部:-1px;
位置:绝对位置;
右:10px;
最高:50%;
}
正常下拉按钮
选择一个
更改您的jquery
部件
$( document.body ).on( 'click', '.append', function( event ) {
$(".dropdown-menu").append("<li><a href=\"#\">Item 1</a></li>"); //append with ul, not div
return false;
});
$(document.body).on('click','.append',函数(事件){
$(“.dropdown menu”).append(“”);//附加ul,而不是div
返回false;
});
附加选项具有不同css的原因是您将其附加到div元素中
li元素的当前CSS来自具有此选择器的引导CSS
dropdown-menu>li>a
由于您在ul中有一个div节点(这是错误的,并且使html无效),并且您正在使用JS在该div中添加一个新的li,因此上述选择器将不会到达该节点,并且不会应用CSS
您应该将li节点直接添加到ul节点下
小提琴:#下拉菜单不存在。它应该是。下拉菜单@JisMaxi当我单击“附加它”时,你的小提琴没有做任何事情。但根本原因仍然是一样的。Bootstrap的CSS以为目标。下拉菜单>li>a
不会以li
内部的嵌套ul
为目标。