:包含IE8上的问题

时间:2011-11-23 10:09:50

标签: javascript jquery jquery-selectors contains

jQuery :contains选择器似乎无法在IE8上运行。

请参阅IE上的以下示例 - LIVE DEMO

JS:

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

2 个答案:

答案 0 :(得分:4)

您需要将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, ' ') );
    });
}

答案 1 :(得分:0)

IE8 :contains问题的另一个更简单的解决方案:

确保您不在字符串中使用空格,例如

即使您的html包含空格$('table tr td:contains("+")')

<td> + </td> 也能正常工作