This looks to be a selector performance problem.
I would suggest the following steps
1. Add a id like id="crazy-products"
the the container which contains all the item_name
elements
2. Change $('.item_name:contains("'+value+'")')
to $('.item_name:contains("'+value+'")', $('#crazy-products'))
IE8 or below does not have the document.getElementsByClassName
implementation so it is looking all the elements in the document to see whether the given filter condition is applied to it. If we can pass an context to the filter condition we can narrow the scope of the document lookup thus improving the performance of the page.
For better understanding of the problem you can look at jquery.js line number 4215 (found = filter( item, match, i, curLoop )
) and look at the size of the array curLoop
, it looks to be enormously large in your case, by passing a id based context to the filter can can reduce it.