Javascript 如果使用Jquery单击td,则为表中的所有tr元素着色

Javascript 如果使用Jquery单击td,则为表中的所有tr元素着色,javascript,jquery,html,Javascript,Jquery,Html,当表从任何子td元素调用时,我试图使用jQuery为所有tr元素着色。这是我的密码 <table> <tr style="color: rgb(31, 73, 125); background-color: #eaeaea;"><td style="padding-left: 5px;"><a style="cursor: pointer;" onclick="download_excel(this,'BL8','ATR','AWFR')">A

当表从任何子td元素调用时,我试图使用jQuery为所有tr元素着色。这是我的密码

<table>
  <tr style="color: rgb(31, 73, 125); background-color: #eaeaea;"><td style="padding-left: 5px;"><a style="cursor: pointer;" onclick="download_excel(this,'BL8','ATR','AWFR')">ATR-ADM-BLCMA8-CHN18-03-01-D</a></td><td>14</td><td>0</td><td>56</td><td>56</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
  <tr style="color: rgb(31, 73, 125); background-color: #eaeaea;"><td style="padding-left: 5px;"><a style="cursor: pointer;" onclick="download_excel(this,'BL8','ATR','AWFR')">ATR-ADM-BLCMA8-CHN18-03-01-D</a></td><td>14</td><td>0</td><td>56</td><td>56</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
  <tr style="color: rgb(31, 73, 125); background-color: #eaeaea;"><td style="padding-left: 5px;"><a style="cursor: pointer;" onclick="download_excel(this,'BL8','ATR','AWFR')">ATR-ADM-BLCMA8-CHN18-03-01-D</a></td><td>14</td><td>0</td><td>56</td><td>56</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr>
</table>
<script>
  function download_excel(element,a,b,c){
    $(element).parents('table').children('tr').css("background-color", "#fbfbfb");
  }
</script>

ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656
函数下载\u excel(元素a、b、c){
$(元素).parents('table').children('tr').css(“背景色”),“#fbfb”);
}
因为我想突出显示单击的一个(已经有代码),所以我想重置为以前的背景色。。那太好了

有什么建议吗?

试试这个:-使用
find()
函数而不是
children()
函数


ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656
函数下载\u excel(元素a、b、c){
$(元素).parents('table').find('tr').css(“背景色”),“#fbfb”);
}
尝试通过以下方式获取当前匹配元素集中每个元素的后代:

函数下载\u excel(元素a、b、c){
$(元素).parents('table').find('tr').css(“背景色”),“#fbfb”);
}

ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656
ATR-ADM-BLCMA8-CHN18-03-01-D1405656

虽然您已经接受了这个问题的答案,但我觉得有必要指出您最初方法中的一些问题;虽然
元素在编写HTML时是可选的,但在构建DOM时,浏览器将定期创建该元素(如果该元素尚不存在),并将
元素放在其中;因此,该行:

$(element).parents('table').children()
首先查找所有祖先
元素(在嵌套
元素的情况下,这本身可能是个问题),然后查找
子元素()
元素,即
元素

通常,这仍然允许颜色“通过”
元素显示,但在这种情况下,您为
元素指定了
背景色,这会阻止
背景显示

因此,有两种选择:

  • 在编写HTML时定义
    元素,并在该
    元素上指定
    背景色:

    函数下载\u excel(元素a、b、c){
    $(元素)。最近('tbody'))
    //请注意,“limegreen”的使用只是为了更简单
    //变化的可视化:
    .css(“背景色”、“灰白”);
    }
    
    ATR-ADM-BLCMA8-CHN18-03-01-D
    14
    0
    56
    56
    ATR-ADM-BLCMA8-CHN18-03-01-D
    14
    0
    56
    56
    ATR-ADM-BLCMA8-CHN18-03-01-D
    14
    0
    56
    56
    
    这只适用于一个TR,我想一次性更换所有TR…谢谢