: содержит проблему в IE8 - PullRequest
3 голосов
/ 23 ноября 2011

Похоже, что селектор jQuery :contains не работает на IE8.

Пожалуйста, смотрите следующий пример на IE - LIVE DEMO

JS:

$('table tr td:contains(" + ")').each( function(){
        $(this).addClass('url');
});

Ответы [ 2 ]

4 голосов
/ 23 ноября 2011

Вам нужно преобразовать пробелы в ваших TD в HTML-сущности ( )

, чтобы $('table tr td:contains(" + ")') работал.(То же JS / CSS)

HTML:

<table>
    <tr>
         <td>&nbsp;+&nbsp;</td>
         <td> 1 </td>
         <td> 3 </td>
         <td> 6 </td>
         <td> 7 </td>
    </tr>
</table>

Однако в современных браузерах это не удастся, поэтому решение заключается в замене сущностей для этих браузеров.Просто вставьте этот фрагмент перед вашим, он сделает всю работу.

if( !($.browser.msie && $.browser.version < 10) ){
    $('table tr td').each(function(){
        $(this).html( $(this).html().replace(/&nbsp;/gi, ' ') );
    });
}
0 голосов
/ 23 ноября 2011

Еще одно более простое решение проблемы IE8 :contains:

Убедитесь, что вы не используете пробел внутри строки, например,

$('table tr td:contains("+")') будет работать , даже если в вашем html есть пробелы <td> + </td>

...