2011-01-01 2 views
1

Я ищу решение для безсезонной версии селектора :contains в jQuery. Я нашел эти два сообщения здесь на переполнение стека:Где разместить код jQuery.expr?

Is there a case insensitive jQuery :contains selector?
How do I make jQuery Contains case insensitive, including jQuery 1.8+?

Так в основном решение заключается в следующем:

jQuery.expr[':'].Contains = function(a,i,m){ 
    return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0; 
}; 

Мой вопрос только в том, как я могу использовать это? Где я могу указать этот фрагмент кода? Я загружаю jQuery в свой заголовок, а затем загружаю файл script.js, где объявлена ​​моя функция готовности DOM. Я поместил эту часть кода за пределы функции готовности DOM, но ничего не изменил в поведении селектора :contains.

ответ

3

Если положить этот кусок кода после загрузки JQuery, вы будете иметь один содержит и один (без учета регистра) icontains селектор:

$.extend($.expr[':'], { 
     // case insensitive version of :contains 
     icontains: function(a,i,m){ 
      return (a.textContent||a.innerText||jQuery(a).text()||""). 
       toLowerCase().indexOf(m[3].toLowerCase())>=0; 
     } 
    }); 
Смежные вопросы