當我的頁面加載時,內容從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」 –