I have a list named myul (whatever)
<ul id="myul">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>
<li>item 6</li>
</ul>
and i filter its item using <input id="filter" type="text" value=""/>
and script is based on jquery
jQuery.expr[':'].containsLower = function(a, i, m) { return jQuery(a).text().toUpperCase() .indexOf(m[3].toUpperCase()) >= 0; // for uppercase-lowercase support }; $('#filter').keyup(function(){ $('ul#myul li').hide().filter(':containsLower("'+this.value+'")').fadeIn(); // shows only the items that have input value and that too on keyup function });
it can filter the list on key up function, but i want it to work also on string is URL hash, so i use
$(window).load(function () { var hash = window.location.hash.substring(1); // removes the # document.getElementById('filter').value = hash; // adds hash string to filter input });
but it doesn't filter the list (considering the hash in url already present) even when i make the filter function run on window load (instead of keyup). it just hides all the list items. and i want it to work on window load, not keyup..
any ideas?