Как: содержит () предполагается использовать? - PullRequest
2 голосов
/ 19 октября 2010

Я новичок в jQuery, но просто пытаюсь создать функцию, которую я могу использовать для фильтрации таблицы.У меня есть таблица, настроенная так, что я могу выбрать все строки по классу (что отлично работает) и вызвать each () для результата.Внутри обратного вызова к каждому () у меня есть это выражение if:

if ($(this).find("td[name=firstName]:contains('ke')").size() > 0)

Однако оно не находит соответствия, когда я знаю, что оно там.Если я возьму вызов содержимого (), он найдет ячейку таблицы, поэтому я действительно не уверен, что не так.К сожалению (для меня) это может быть так же просто, как использование неправильного синтаксиса ...: (

Конечным результатом будет иметь переменную для строки селектора, но так как даже использование строки напрямую неработает ...

Ответы [ 3 ]

1 голос
/ 20 октября 2010

Вы можете расширить селекторы jQuery следующим образом:

$.expr[':'].icontains = function(obj, index, meta, stack){
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
};

Это даст вам новый псевдоселектор :icontains(text), который работает как :contains(text), но без учета регистра.См. Раздел комментариев на странице документации jQuery для :contains(text)

1 голос
/ 19 октября 2010

замените .size() на .length

и проверьте, что он находит строчные буквы "ke"

0 голосов
/ 20 октября 2010

Это работает для меня (http://jsfiddle.net/dactivo/PHMkx/).

Он ищет td с атрибутом «name» со значением «FirstName» и внутри td, то есть HTML внутри td, содержит строку «prueba». Размер () или длина здесь оба работают.

<table><tr><td name="FirstName"><a class="edit">prueba</a> </td></tr></table>

$(document).ready(function(){

    if ($("table:eq(0)").find("td[name=FirstName]:contains('prueba')").size() > 0)
  {
      alert("yes");
  }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...