从jQuery中的网格视图HTML获取文本以应用CSS

时间:2013-09-17 08:01:44

标签: jquery asp.net css

我有一个asp.net数据网格,其HTML在浏览器中呈现如下。

<div id="divViewAlldealers" class="">
   <table id="ctl00_cph1_ucMS_grdAllDealers" cellspacing="0" border="1" style="border-collapse:collapse;" rules="all">
     <tbody>
        <tr>
           <td style="background-color: rgb(232, 246, 211);">25 - Vickar Community Chevrolet Ltd</td>
        </tr>
        <tr>
           <td>0 - Jim Gauthier Chevrolet Ltd.</td>
        </tr>
        <tr>
            <td>0 - Murray Chevrolet Ltd.</td>
        </tr>
        <tr>
            <td>0 - Birchwood Chevrolet Buick GMC Ltd.</td>
        </tr>
  </tbody>

现在我的目标是我必须为拥有当前客户的td提供差异背景颜色。

我知道谁是当前的客户,但我怎样才能从网格中找到客户?

假设说 - Murray Chevrolet Ltd.注意:该列表是动态的,当前客户可以进入任何地方而不仅仅是第二个td。

我知道我们可以通过使用jQuery each()来实现它。是否可以在不使用each()函数的情况下在jQuery中修复它?

3 个答案:

答案 0 :(得分:1)

看到这个小提琴。如果您当前的用户是Murray,您可以过滤所有包含'Murray'作为文本的TD并应用背景颜色

$("tr td:contains('Murray')").each(function(){
  $(this).css("background-color"," rgb(232, 246, 211)");
});

http://jsfiddle.net/KSxLy/

<强>更新

$("tr td").filter(function(){
    return $(this).text() === 'San Sarif';
}).css("background-color"," rgb(232, 246, 211)");

JSFIDDLE

答案 1 :(得分:1)

最好将 td 添加一个数据属性,将其显示为当前客户。 而不是使用你的jQuery选择器来改变背景颜色。

  <table id="ctl00_cph1_ucMS_grdAllDealers" cellspacing="0" border="1" style="border-   collapse:collapse;" rules="all">
 <tbody>
    <tr>
       <td data-currrentCustomer="true">25 - Vickar Community Chevrolet Ltd</td>
    </tr>
    <tr>
       <td>0 - Jim Gauthier Chevrolet Ltd.</td>
    </tr>
    <tr>
        <td>0 - Murray Chevrolet Ltd.</td>
    </tr>
    <tr>
        <td>0 - Birchwood Chevrolet Buick GMC Ltd.</td>
    </tr>
</tbody>
</table>

<强>的jQuery

$(document).ready(function(){
    $("td[data-currrentCustomer='true']").css({"background-color":"rgb(232, 246,211)"});
});

您可以查看我的Fiddle

答案 2 :(得分:0)

如果您拥有当前的客户名称,则可以使用以下代码行。

var custName ="Vickar";
$( "td:contains('"+ custName +"')" ).css( "color", "#FF0000" );