如何通过javascript onClick事件方法高亮显示一行?

如何通过javascript onClick事件方法高亮显示一行?,javascript,php,html,Javascript,Php,Html,我有一个db中的数据列表,我在表的每一行中显示它。我想当我点击一行时,它应该保持高亮显示的颜色。但我下面的代码突出显示了所有行。你能帮我一下吗 应该只突出显示我单击的一行。 <script type="text/javascript"> function visited(a) { tr = a.parentNode.parentNode; tr.style.backgroundColor = "red"; } </script> <?php echo "&

我有一个db中的数据列表,我在表的每一行中显示它。我想当我点击一行时,它应该保持高亮显示的颜色。但我下面的代码突出显示了所有行。你能帮我一下吗

应该只突出显示我单击的一行。

<script type="text/javascript">
function visited(a) {
tr = a.parentNode.parentNode;
tr.style.backgroundColor = "red";
}
</script>

<?php
    echo "<table width='100%' cellpadding='0' cellspacing='0'>";
    echo "<thead>";
    echo "<tr>";                
    echo "<td class='' valign='top' width='200'></td>";
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "</tr>";   
    echo "</thead>";
    echo "<tbody>";             

while($res =  mysql_fetch_array($get)){
    $cdid = $res['cdid'];
    $family_name = $res['family_name'];
    $given_name = $res['given_name'];
    $work_phone = $res['work_phone'];
    $mobile_phone = $res['mobile_phone'];
    $email = $res['email'];
    $email_private = $res['email_private'];
    $cid = $res['cid'];
    $department = $res['department'];
    $title = $res['title'];

    $getComapnyName =  mysql_query("SELECT company_name FROM company WHERE cid = '$cid' ");
    $resCompany =  mysql_fetch_array($getComapnyName);
    $companyName =  $resCompany['company_name'];

    if (strlen($companyName) >= 20) {
        $companyName =  substr($companyName, 0, 10). " ... " . substr($companyName, -5);
    }else{
        $companyName = $companyName;
    }           
    echo "<tr onclick='getDetails($cdid),showNotexBox($cdid),showAllNotesBox($cdid), visited(this);'>";                             
    echo "<td class='' valign='top'>$companyName</td>";
    echo "<td class='' valign='top'>$family_name</td>";
    echo "<td class='' valign='top'>$given_name</td>";
    echo "<td class='' valign='top'>$department</td>";
    echo "<td class='' valign='top'>$title</td>";

    echo "</td>";
    echo "</tr>";
    }
    echo "</tbody>";
    echo "</table>";    
?>
我的代码

<script type="text/javascript">
function visited(a) {
tr = a.parentNode.parentNode;
tr.style.backgroundColor = "red";
}
</script>

<?php
    echo "<table width='100%' cellpadding='0' cellspacing='0'>";
    echo "<thead>";
    echo "<tr>";                
    echo "<td class='' valign='top' width='200'></td>";
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "<td class='' valign='top' width='125'></td>";                             
    echo "</tr>";   
    echo "</thead>";
    echo "<tbody>";             

while($res =  mysql_fetch_array($get)){
    $cdid = $res['cdid'];
    $family_name = $res['family_name'];
    $given_name = $res['given_name'];
    $work_phone = $res['work_phone'];
    $mobile_phone = $res['mobile_phone'];
    $email = $res['email'];
    $email_private = $res['email_private'];
    $cid = $res['cid'];
    $department = $res['department'];
    $title = $res['title'];

    $getComapnyName =  mysql_query("SELECT company_name FROM company WHERE cid = '$cid' ");
    $resCompany =  mysql_fetch_array($getComapnyName);
    $companyName =  $resCompany['company_name'];

    if (strlen($companyName) >= 20) {
        $companyName =  substr($companyName, 0, 10). " ... " . substr($companyName, -5);
    }else{
        $companyName = $companyName;
    }           
    echo "<tr onclick='getDetails($cdid),showNotexBox($cdid),showAllNotesBox($cdid), visited(this);'>";                             
    echo "<td class='' valign='top'>$companyName</td>";
    echo "<td class='' valign='top'>$family_name</td>";
    echo "<td class='' valign='top'>$given_name</td>";
    echo "<td class='' valign='top'>$department</td>";
    echo "<td class='' valign='top'>$title</td>";

    echo "</td>";
    echo "</tr>";
    }
    echo "</tbody>";
    echo "</table>";    
?>

访问的功能(a){
tr=a.parentNode.parentNode;
tr.style.backgroundColor=“红色”;
}

由于您的
a
参数引用的是正在单击的
,因此使用
a.parentNode.parentNode
实际上是在更改表的
背景色

请尝试以下方法:

function visited(tr) {
    tr.style.backgroundColor = "red";
}
根据您的编辑,尝试以下操作:

function visited(tr) {
    var table = tr.parentNode.parentNode;
    var trs = table.getElementsByTagName('tr');

    for (var i = 0; i < trs.length; i++)
        {
        trs[i].style.backgroundColor = null;
        trs[i].style.color = null;
        }

    tr.style.backgroundColor = '#000';
    tr.style.color = '#fff';
}
已访问的功能(tr){ var table=tr.parentNode.parentNode; var trs=table.getElementsByTagName('tr'); 对于(变量i=0;i
如果您想使用jQuery,可以执行以下操作。只需复制粘贴代码并运行它

  <html>
     <head>
      <meta charset="UTF-8">
      <title></title>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">  </script>

      <script type="text/javascript">


    var Color = {
        initialize: function() {
                $(document).on("click", ".trow", Color.setColor)                                                
        },
        setColor: function() {

            $(".trow").css('background-color','#fff');
            this.style.backgroundColor = 'red';            
        }
    };          
    $(document).ready(function(){
        Color.initialize();
    });     
    </script>        
   </head>
   <body>
   <table width='100%' cellpadding='0' cellspacing='0'>
   <tbody>                
   <tr class='trow' id='r1'>                             
    <td class='' valign='top'>value1</td>
    <td class='' valign='top'>value2</td>
    <td class='' valign='top'>value3</td>
    <td class='' valign='top'>value4</td>
    <td class='' valign='top'>value5</td>
   </tr>
   <tr class='trow' id='r2'>                             
    <td class='' valign='top'>price1</td>
    <td class='' valign='top'>price2</td>
    <td class='' valign='top'>price3</td>
    <td class='' valign='top'>prive4</td>
    <td class='' valign='top'>price5</td>
   </tr>    
   </tbody>
   </table>
   </body>
   </html>

变量颜色={
初始化:函数(){
$(document).on(“click”、“.trow”、Color.setColor)
},
setColor:function(){
$(“.trow”).css('background-color','#fff');
this.style.backgroundColor='red';
}
};          
$(文档).ready(函数(){
Color.initialize();
});     
价值1
价值2
价值3
价值4
价值5
价格1
价格2
价格3
特权
价格5

无论如何,您可以使用jQuery添加或删除类,并使用css进行样式设置

现在它正在高亮显示。但我点击的是哪一行。应该只突出显示我点击的一行。哇。它起作用了。但是文本颜色是黑色的。所以我使用的是
tr.style.Color=“white”但不工作。请尝试使用小写的
color
。我使用了
color
,但现在我单击的那一行的整行是白色的!你真的应该使用CSS来实现这一点。无论如何,我修改了我的答案。