У меня есть скрипт jQuery, который позволяет мне фильтровать элементы списка при наборе текста в текстовом поле .... однако он фильтрует только текст вне тегов ...
Может кто-нибудь пожалуйстаадаптировать этот скрипт так, чтобы он фильтровал значения входных данных, в частности кнопки?
В заголовке моего html-файла:
<script type="text/javascript" src="js/jquery.liveFilter.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(ul#filter_me').liveFilter('slide');
});
</script>
Вот текстовое поле:
<input type="text" class="filter" name="liveFilter" />
Вот список:
<ul id="filter_me">
<li><input type="button" value="John Slater" /></li>
<li><input type="button" value="Matt Bold" /></li>
<li><input type="button" value="Bob Cool" /></li>
</ul>
, если бы я набрал ... Джон, я бы увидел кнопку с Джоном Слейтером в качестве значения.
<input type="button" value="John Slater" />
Вотвнешний файл JQuery:
(function (a) {
a.fn.liveFilter = function (d) {
var c = a(this);
var g;
if (a(this).is("ul")) {
g = "li"
} else {
if (a(this).is("ol")) {
g = "li"
} else {
if (a(this).is("table")) {
g = "tbody tr"
}
}
}
var e;
var b;
var f;
a("input.filter").keyup(function () {
f = a(this).val();
e = a(c).find(g + ':not(:Contains("' + f + '"))');
b = a(c).find(g + ':Contains("' + f + '")');
if (d == "basic") {
e.hide();
b.show()
} else {
if (d == "slide") {
e.slideUp(500);
b.slideDown(500)
} else {
if (d == "fade") {
e.fadeOut(400);
b.fadeIn(400)
}
}
}
});
jQuery.expr[":"].Contains = function (j, k, h) {
return jQuery(j).text().toLowerCase().indexOf(h[3].toLowerCase()) >= 0
}
}
})(jQuery);
Любая помощь будет принята с благодарностью.
Спасибо:)