我现在需要在这样一个表格里  给包含文本Tragedy的第一行添加红色(special)样式 我只能找到所有的包含Tragedy的tr  却找不到第一行 请教各位 这要怎么写的?jquery选择符

解决方案 »

  1.   

    帅哥,这个在性能上消耗比较大,对比一下,差别不在一个数量级上。而且jq的选择器确实比较耗时间。他的其它方法也没有源生的快,我试写了一下,没有问题。但是你的结构没有发出来,我只能猜测了。
    我的另外一种解决办法是把数据绑定到tr上,根据属性直接查找,性能上应该快很多。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>test</title>
        <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.min.js"></script>
        <style type="text/css">
            .red{background:red;}
        </style>
    </head>
    <body>
    <table>
        <tr>
            <td>11</td>
            <td>22</td>
        </tr>
        <tr data-name="2332">
            <td>11</td>
            <td>222</td>
        </tr>
        <tr data-name="222">
            <td>11</td>
            <td>333</td>
        </tr>
        <tr data-name="2332">
            <td>11</td>
            <td>333</td>
        </tr>
        <tr data-name="2332">
            <td>11</td>
            <td>333</td>
        </tr>
        <tr>
            <td>11</td>
            <td>333</td>
        </tr>
        <tr>
            <td>11</td>
            <td>333</td>
        </tr>
        <tr>
            <td>11</td>
            <td>333</td>
        </tr>
    </table>
    <script type="text/javascript">
        console.time('1');
        $('td:contains(222)').parent().addClass('red');
        console.timeEnd('1');    console.time('2');
        $('table tr').each(function(){
            if(this.getAttribute('data-name') == '222'){
    //        if($(this).data('name') == '222'){
                $(this).addClass('red');
            }    });
        console.timeEnd('2');
    </script>
    </body>
    </html>
      

  2.   

    $("td.contains('Tragedy')").first().parent().addClass('special');
    });