我正在嘗試使用jQuery構建搜索過濾器。當用戶在文本框中鍵入文本時,我可以搜索單詞並顯示特定內容。使用jQuery按鈕單擊後搜索並顯示特定內容
但是我想在搜索按鈕被點擊後開始搜索。
這裏是JSFiddle
(function($) {
jQuery.expr[':'].Contains = function(a, i, m) {
return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase()) >= 0;
};
function listFilter(header, list) {
$(list).find('p').hide();
var form = $("<form>").attr({
"class": "filterform",
"action": "#"
}),
input = $("<input>").attr({
"class": "filterinput",
"type": "text"
}),
search = $("<input>").attr({
"class": "filterbutton",
"type": "button",
"name": "btn1",
"value": "Search"
});
$(form).append(input).appendTo(header);
$(input).on('input', function() {
var filter = $(this).val();
$(list).find('p').hide();
if (filter) {
$(list).find("p:Contains(" + filter + ")").show();
}
});
}
$(document).ready(function() {
listFilter($("#header"), $("#list"));
});
}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id="header">Collection</h1>
<div id="list">
<div id='p1'>
<p>First Paragraph</p>
<p>Abbot and Costello - Africa Screams</p>
</div>
<div id='p2'>
<p>Second Paragraph</p>
<p>Abbot and Costello - Frank/Meet</p>
</div>
<div id='p3'>
<p>Third Paragraph</p>
<p>addin</p>
</div>
<div id='p4'>
<p>Forth Paragraph</p>
<p>Begins</p>
</div>
</div>
碼我怎樣才能做到這一點?
在此先感謝。
$(input).on('input', function() {
觸發按鈕的點擊使用:
$(search).on('click', function() {
然後改變這:
var filter = $(this).val()
。在你的例子中,沒有按鈕?!? –
不,我試圖建立,但它不工作。你可以在代碼中看到名稱搜索。 – Snappy