2014-01-30 5 views
4

У меня есть таблица, подобная этому.Выделите td, если его значение равно

  <table> 
      <tr> 
       <td>one</td> 
       <td>two</td> 
       <td>one two</td> 
      </tr> 
      <tr> 
       <td>one</td> 
       <td>two</td> 
       <td>one two</td> 
      </tr> 
      <tr> 
       <td>one</td> 
       <td>two</td> 
       <td>one two</td> 
      </tr> 
     </table> 

и код JQuery, чтобы выделить td, если его значение one

$("table > tbody > tr > td:contains('one')").css("background", "#6a5acd"); 

И код сделает тд highligted, если его значение one two также. Я хочу, чтобы выделить только тд, которые имеют one

ответ

4

:contains не очень подходит для этого, поскольку он просто проверяет, присутствует ли данная строка в любом месте в элементе, используйте ручную filter, чтобы сделать это

$("table > tbody > tr > td").filter(function(){ 
    return $.trim($(this).text()) == 'one' 
}).css("background", "#6a5acd"); 

см демо на fiddle

0

попробовать это один

$("tr td:contains('one')").each(function(){ 
     $(this).css("background","#6a5acd"); 
}); 

см демо на fiddle

+1

Это то же самое. ': contains' также выберет' one two'. Потому что он содержит 'one' – Jashwant

+0

@Jashwant thanku .. я получил его :) – chriz

0

Функция contains действительно не подходит для использования. Вместо этого я бы рекомендовал filter.

Вот синтаксис: того, что вы хотите сделать.

$("table > tbody > tr > td").filter(function() { 
    return $(this).text() === "one" 
}).css("background", "#6a5acd"); 

А вот jFiddle: http://jsfiddle.net/xDP9d/

Смежные вопросы