2013-10-27 10 views
0

Мне не удалось создать таблицы строк на основе значений строк.строки таблицы стиля на основе значения (jquery)

В настоящее время у меня есть:

$(document).ready(function() { 
      $(".bulkGridClass").find("td").each(function() {    
       $(this).css("color", "Red");    
      }); 
     }); 

Но вместо этого мне нужно что-то вроде этого:

$(document).ready(function() { 
     $(".bulkGridClass").find("td").each(function() {    
      // IF TD CONTAINS TEXT "File" THEN add color red 
      $(this).css("color", "Red");    
     }); 
    }); 

Я пытался использовать что-то вроде этого:

$(this).contains("File") 

, но это показывает мне $(this) не имеет contains.

ответ

1

Функция text() вернет текст узла. Вы можете комбинировать, что с indexOf(), чтобы проверить строку, которую вы ищете:

$(document).ready(function() { 
    $(".bulkGridClass").find("td").each(function() {    
     if ($(this).text().indexOf('File') > -1) 
      $(this).css("color", "Red");    
    }); 
}); 

Другой (вероятно, лучше) вариантом будет использовать :contains() селектор:

$(document).ready(function() { 
    $('.bulkGridClass td:contains("File")').css("color", "Red");    
}); 

Обратите внимание, что :contains() является случай -чувствительный, поэтому File != file.

1

Можно пропустить $.each и просто сделать:

$(".bulkGridClass td:contains('File')").css("color", "Red"); 

Если чувствительны к регистру:

$(".bulkGridClass td").filter(function(){ 
    return $(this).text().toLowerCase().indexOf('file') >-1; 
}).css("color", "Red"); 

Обеспечить некоторые примеры разметки для теста

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