2013-12-13 41 views
1

我一直被困在這最後一天半。我正在嘗試爲我的html表格添加一個實時過濾器(這是通過PHP腳本生成的,用於將.csv文件導入html標準標記)。我將我的代碼從以下演示http://jsfiddle.net/7BUmG/2/中刪除,我從How to perform a real time search and filter on a HTML table中找到。表格過濾器不能正常工作

現在我認爲問題在於元素在DOM時沒有定義。我已經嘗試添加以下來適應這一點,但沒有運氣。

<script> 
$(document).ready(function() { 
// My javascript 
}); 
</script> 

<script> 
$(document).on('pageinit') { 
// My javascript 
}); 
</script> 

,也只是一個普通的功能標籤

<script> 
$(function(){ 
// My javascript 
}); 
</script> 

有誰知道如何得到這個js代碼在我的html頁面在按鍵執行? (它在上面提供的鏈接中工作,但不在jsfiddle之外)

$('#search').keyup(function() { 
    var $rows = $('#table1 tr'); 
    var val = '^(?=.*\\b' + $.trim($('#search').val()).split(/\s+/).join('\\b)(?=.*\\b') + ').*$', 
     reg = RegExp(val, 'i'), 
     text; 
    $rows.show().filter(function() { 
     text = $(this).text().replace(/\s+/g, ' '); 
     return !reg.test(text); 
    }).hide(); 
}); 

Ps。這是我的第一篇文章,讓我知道如果我做錯了什麼或需要更多的解釋。謝謝!

+0

搜索按鈕是否存在或是否是動態添加的? – epascarello

+0

我已經在表格之前出現了。它看起來像這樣 LearnerMike

+0

而'var $ rows = $('#table1 tr') ;'是在上面的代碼中的密鑰?小提琴在外面。 – epascarello

回答

0

你確定你的DOM樹建立後綁定JS事件嗎?

E.g.將您的代碼包裝爲ready文件的事件偵聽器

$(document).ready(function(){ 

    $('#search').keyup(function() { 
     //... 
    } 

}) 
+0

是的,這是我現在有。$(document)。就緒(函數(){// $(函數(){ \t $( '#搜索')KEYUP(函數(){ \t \t變量$行= $( '#table1的TR'); \t \t var val ='^(?=。* \\ b'+ $ .trim($(this).val())。split(/ \ s + /)。join('\\ b)(?=。* \\ b')+')。* $', \t \t \t reg = RegExp(val,'i'), \t \t \t text; \t \t $ rows.show()過濾器(功能(){ \t \t \t文本= $(本)的.text()代替(/ \ S + /克,'「);。。 \t \t \t回報! reg.test(text); \t \t})。hide(); \t}); }); – LearnerMike