我正在使用bootstrap和jQuery创建一个登陆页面。一个缺点是,我只能用jquery更改html,因为html是由cms后端代码硬编码的,更改后会重置html。因此操作代码的唯一方法是使用jQuery。长话短说,我有一个包含输入和标签的表单。我正在尝试将输入和标签标签的一列变成两列。到目前为止,我已经创建了一个具有自己的类的div标记,这将是第二列。使用jquery wrapAll函数,在这个类名为sec1col2的div中添加了Input和label标记。但是,我需要关于如何从两个父div移动这个div的帮助,因此sec1col2 div可以移动到父div旁边,在div行下。此外,在html文件的降序行中有多个具有col-xs-12类名的div,因此它的伎俩是试图只针对sec1col2 div嵌套在其中的一个col-xs-12类。
到目前为止,我已经尝试了.unwrap()jquery函数。这只将sec1col2 div提升了一级。谢谢你的帮助。
<div class="col-xs-12">
<div class="left-aligned-control field-control-wrapper">
<div>
<input value="AlternateEnergy" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item1</label><br>
</div>
<div>
<input value="Audio" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item2</label><br>
</div>
<div>
<input value="Broadcast" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item3</label><br>
</div>
<div><input value="Communications" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item4</label><br>
</div>
<div>
<div class="col-xl-4 col-md-4 sec1col2">
<input value="Computing" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item5</label>
<input value="Industrial" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item6</label>
<input value="Instrumentation" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item7</label>
<input value="Lighting" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item8</label></div><br>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
var $sect1inputcol2 = $('input[value=Computing],input[value=Industrial],input[value=Instrumentation],input[value=Lighting]');
var $sect1label5col2 = $('label')[5];
var $sect1label6col2 = $('label')[6];
var $sect1label7col2 = $('label')[7];
var $sect1label8col2 = $('label')[8];
$($sect1inputcol2).add($sect1label5col2).add($sect1label6col2).add($sect1label7col2).add($sect1label8col2).wrapAll('<div class="col-xl-4 col-md-4 sec1col2" />');
$('.sec1col2').unwrap()
});
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
我希望将sec1col2 div放在父col-xs-12 div旁边。
我假设你提供的HTML标记不是原始的...而是在尝试创建第二列时生成的。
我会建议你另一个“攻击角度”来解决这个问题。这样做的好处是,您不必专门使用name
属性的值对其进行编码...这将适用于来自原始“一列”的任何数量的输入。
允许您添加、删除或重命名字段...列拆分是独立的。这对于您的网页的未来发展是一个很大的优势。
所以...它在反向循环中使用.append()
,然后使用.after()
将新创建的第二列放在第一列之后。“反向循环”只是一个正常循环,但正在递减...并从最后一个元素开始,使用.eq()
方法。
null
$(document).ready(function() {
// Start from the inputs wrapper.
var oneColumn_wrapper = $(".left-aligned-control");
// Check how many divs inside
var oneColumn_length = oneColumn_wrapper.find("div").length;
// Determine what's the half amount of input group (And make sure to have a entire number, not a float)
var half = Math.round(oneColumn_length/2);
// Create the second column
var secondInputWrapper = $('<div class="left-aligned-control field-control-wrapper">');
// Using a reverse loop, append the half of the input groups in a second column
for(i=oneColumn_length;i>half;i--){
secondInputWrapper.append(oneColumn_wrapper.find("div").eq(i-1));
}
// Append that second column after the first.
oneColumn_wrapper.after(secondInputWrapper);
});
/* Some assumed CSS */
.left-aligned-control{
float: left;
padding-left:1em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="col-xs-12">
<div class="left-aligned-control field-control-wrapper">
<div>
<input value="AlternateEnergy" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item1</label><br>
</div>
<div>
<input value="Audio" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item2</label><br>
</div>
<div>
<input value="Broadcast" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item3</label><br>
</div>
<div>
<input value="Communications" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item4</label><br>
</div>
<div>
<input value="Computing" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item5</label>
</div>
<div>
<input value="Industrial" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item6</label>
</div>
<div>
<input value="Instrumentation" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item7</label>
</div>
<div>
<input value="Lighting" name="checkboxes" type="checkbox">
<label class="checkbox-aligned elq-item-label">item8</label></div><br>
</div>
</div>
如何在行flex父级的开头显示两个div容器,在末尾显示第三个div容器?在下面的示例中,child-3应该位于右侧。 下面是一个包含所有孩子的快速示例,位于父项jsfiddle的开头
我有一个可以垂直扩展和收缩的父div。里面有两个儿童沙发。我想根据父div的高度对孩子进行定位: > 父母 --------------------------------------------------------------------------------- |-孩子 ------------| |----------------------| |-------------------
问题内容: 在将一个人叠加到另一个人上时,我需要帮助。 我的代码如下所示: 不幸的是,我不能将或嵌套在第一个内部。 如图所示,它必须是两个单独的,但是我需要知道如何将放置在上方和最右侧,并以的顶部为中心。 问题答案: 我建议使用来了解和子元素。
问题内容: 我有一个如下所示的div页面 样式 我想调整div的高度以填充(或拉伸到)整个div (标有绿色边框),并且不想越过页脚divD。我该如何解决? 问题答案: 只需添加到造型。应该没有必要。
我使用Bootstrap2.3创建了一个html文件。2 css。html将有四个不同高度的行,例如第一行为10%,第二行为20%,第三行为40%,第四行为40%。在第三行中,我在每个单元格中放置了一个框状面板,html正在呈现,但问题是面板的高度与父级不匹配。假设如果面板主体的内容超过,则面板将从父级中出来,如下所示 现在,如果面板主体的内容较少,则面板高度似乎与父级不匹配,如下图所示 我试图实
问题内容: 我在嵌套div中存在问题-当我将其应用于嵌套div时,边距将应用于父div 而不是 嵌套div。 有任何想法吗? 问题答案: 边距将因设计而崩溃。也添加1px的填充,它应该可以正常工作。