[英]How do I highlight a row by javascript onClick Event method?
我有一個來自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>";
?>
如果要使用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>
無論如何,您可以使用jQuery添加或刪除類,並使用CSS進行樣式設置
由於您a
參數引用了被單擊的<tr>
,因此通過使用a.parentNode.parentNode
實際上可以更改表的backgroundColor
。
嘗試以下方法:
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';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.