当我的页面加载时,内容从PHP数据库中提取并填充到多个Bootstrap .col-xs-3
列中,全部在一个.row
内。在页面加载后动态插入HTML(并在按键后更改)
不过,我需要在页面加载,也对keyup
后以关闭.row
并开始新的一个使用JavaScript/jQuery的每四列,将相关的HTML到需要的地方去的代码。这是因为页面上的内容数量可能会根据用户在搜索栏(隐藏某些列)内的输入动态更改。
我的网页的HTML结构如下:
<input id="search" type="text">
<div class="row">
<div class="col-xs-3 col-flex">1</div>
<div class="col-xs-3 col-flex">2</div>
<div class="col-xs-3 col-flex">3</div>
<div class="col-xs-3 col-flex">4</div>
<div class="col-xs-3 col-flex">5</div>
<div class="col-xs-3 col-flex">6</div>
</div>
而我需要它,像这样:
<input id="search" type="text">
<div class="row">
<div class="col-xs-3 col-flex">1</div>
<div class="col-xs-3 col-flex">2</div>
<div class="col-xs-3 col-flex">3</div>
<div class="col-xs-3 col-flex">4</div>
</div>
<div class="row">
<div class="col-xs-3 col-flex">5</div>
<div class="col-xs-3 col-flex">6</div>
</div>
但是,我不能硬编码与PHP的新行,因为用户输入在搜索栏中可能会将可见页面内容更改为以下内容,并且我需要将这些行动态地关闭到正确的位置(请注意4
如何丢失):
<input id="search" type="text">
<div class="row">
<div class="col-xs-3 col-flex">1</div>
<div class="col-xs-3 col-flex">2</div>
<div class="col-xs-3 col-flex">3</div>
<div class="col-xs-3 col-flex">5</div>
</div>
<div class="row">
<div class="col-xs-3 col-flex">6</div>
</div>
这是我的jQuery的权利,但它似乎并不奏效:
$(document).ready(function() {
function rowBreak() {
var columnCount = 0;
$('col-flex:visible').each(function() {
columnCount++;
if (columnCount % 4 == 0) {
$(this).append('</div><div class="row">');
}
});
}
rowBreak();
$("#search").on("keyup", function() {
rowBreak();
});
});
编辑:我刚刚意识到,我的代码,甚至不采取考虑去除其他行在正确的地方,然后再重新将它们添加每按一次键...
第一,你忘了 “”在类选择器“col-flex” –