javascript - onclick href 更改 td 背景

标签 javascript css

我对 css 和 javascript 完全不熟悉,如果这可能是一些基本的东西,我很抱歉。我正在尝试整理一个显示建筑物概览的表格。 当用户单击任何楼层链接时,一个表格会更改为另一个表格(它们都在不同的 div 中。当用户将鼠标移到它上面时,它会显示有关每个单独单元的更多信息,无论是出租、出售,还是无法使用。 我现在要创建的是一些链接,这些链接在单击时会更改每个单元格的背景。因此,例如,当点击 show rental units 时,id='rent' 和 'both' 的所有单元格的背景都会发生变化 在此处查看演示:http://encanto.ximg.co/overviewdemo.html

这是第一个表格的完整源代码(包括 css)。我确定它在我试图显示/隐藏 td 单元格的某个地方也是一团糟。但我似乎只能找到告诉 td 在您单击 td 时更改颜色的函数,而不是 href。 正如我所说,我是一个彻头彻尾的 n00b,所以请保持温柔。

    <style type="text/css">
table.overview a {  
border:none;    
display: block; 
}

table.overview td {
    max-height:150px;
    max-width:150px;
    background:#96843c;
}

div.overview td:hover {
    background:#ffffff;
}

div.overview td.white {
    background:#ffffff;
}

div.overview    a {
color: #ffffff; 
text-decoration:none;
text-align:center;
letter-spacing: 1px; 
font-size:16px; 
line-height:32px; 
font-family:"Century Gothic", helvetica, sans-serif;
padding: 2px 5px;
}

div.overview    p   {
color:#96843c;
text-decoration:none;
text-align:center;
letter-spacing: 1px;
font-size:10px;
line-height:10px;
font-family:Georgia, "Times New Roman", Times, serif;
}

div.overview    a:hover {
color: #96843c;
background: #ffffff;
font-family: "Century Gothic";
}



</style>

<script type="text/javascript"><!--

function show_visibility(){
for(var i = 0,e = arguments.length;i < e;i++){
var myDiv = document.getElementById(arguments[i]).style;
myDiv.display = "block";
}
}

function hide_visibility(){
for(var i = 0,e = arguments.length;i < e;i++){
var myDiv = document.getElementById(arguments[i]).style;
myDiv.display = "none";
}
}
</script>

<table summary="" cellpadding="1" cellspacing="1" class="floor">

<tr>

<td>
<a href="#"onClick="show_visibility('floor1');hide_visibility('floor2');hide_visibility('penthouse') ">Ground Floor</a>
</td>

<td>
<a href="#" onClick="show_visibility('rental');show_visibility('both');hide_visibility('sales');hide_visibility('na') ">Show Rental Units</a>
</td>

</tr>

<tr>

<td>
<a href="#" onClick="show_visibility('floor2');hide_visibility('floor1');hide_visibility('penthouse')">1st Floor</a>
</td>

</tr>

<tr>

<td>
<a href="#" onClick="show_visibility('penthouse');hide_visibility('floor1');hide_visibility('floor2')">Penthouse</a></td>
</tr>
</table>


<div id='floor1' class="overview" style="display:none">

<table summary="" cellpadding="1" cellspacing="1" class="overview" width="630">


<tr>
<td colspan="12" height="25" class="white"></td>
</tr>
<tr>
<td colspan="1" rowspan="7" width="25" class="white"><img src="http://encanto.ximg.co/calle10.jpg" /></td>
<td colspan="8" height="25" class="white"><img src="http://encanto.ximg.co/adjacent.jpg" /></td>
<td colspan="1" rowspan="7" width="25" class="white"><img src="http://encanto.ximg.co/calle12.jpg" /></td>
<td colspan="1" rowspan="7" width="25" class="white"></td>
</tr>


<tr>
<td colspan="4" id="sale"><a href="http://www.encantoriviera.com/unit14/"onfocus="this.blur()"> 
14</a>
<p> 
<strong>FOR SALE</strong>
<br /> 
2 Bed/2 Bath 
<br /> 
1131 sq ft./105 sq m.
</p>
</a>
</td>

<td colspan="4" id="na"><a href="http://www.encantoriviera.com/real-estate/vacation-rentals/"onfocus="this.blur()">1</a>
<p>
<strong>NOT AVAILABLE</strong> 
<br /> 
2 Bed/2 Bath
<br /> 
1677 sq ft./156 sq m.
</p>
</a>

</td>
</tr>


<tr>
<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()"> 
13
<p> 
<strong>NOT AVAILABLE</strong>
<br /> 
1 Bed/ 1.5 Bath
<br />
840 sq ft./78 sq m.
</p>
</a>

</td>
<td colspan="4" rowspan="4" width="300" class="white">
</td>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()">
2
<p> 
<strong>NOT AVAILABLE</strong>
<br /> 
2 Bed/ 2 Bath
<br />
872 sq ft./82 sq m.
<br />  
</p>
</a>

</td>
</tr>

<tr>
<td colspan="2" width="150" id="sale"><a href="http://www.encantoriviera.com/unit12/"onfocus="this.blur()"> 
12
<p> 
<strong>FOR SALE</strong>
<br /> 
1 Bed/ 1.5 Bath
<br />
850 sq ft./79 sq m.
<br />  
</p>
</a>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()"> 
3
<p> 
<strong>SOLD</strong>
<br /> 
2 Bed/ 2 Bath
<br />
1130 sq ft./105 sq m.
</p>
</a>

</td>
</tr>


<tr>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()" > 
11
<p> 
<strong>NOT AVAILABLE</strong>
<br /> 
2 Bed/ 2 Bath
<br />
1071 sq ft./101 sq m.
<br />  
</p>
</a>


<td colspan="2" width="150" id="both"><a href="http://www.encantoriviera.com/unit4/"onfocus="this.blur()"> 
4
<p> 
<strong>FOR SALE AND RENT</strong>
<br /> 
2 Bed/ 2 Bath
<br />
1092 sq ft./101 sq m.
</p>
</a>
</td>
</tr>

<tr>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()" >
10
<p> 
<strong>NOT AVAILABLE</strong>
<br /> 
2 Bed/ 2 Bath
<br />
1087 sq ft./101 sq m.
</p>
</a>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()"> 
5
<p> 
<strong>SOLD</strong>
<br /> 
2 Bed/ 2 Bath
<br />
1092 sq ft./101 sq m.
</p>
</a>
</td>
</tr>

<tr>
<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/"onfocus="this.blur()"> 
9
<p> 
<strong>SOLD</strong>
<br /> 
2 Bed/ 2.5 Bath
<br />
1506 sq ft./140 sq m.
</p>
</a>

</td>

<td colspan="2" width="150" id="na"><a href="http://www.encantoriviera.com/unit8/"onfocus="this.blur()"> 
8
<p> 
<strong>FOR SALE AND RENT</strong>
<br /> 
1 Bed/ 1.5 Bath
<br />
915 sq ft./85 sq m.
</p>
</a>
</td>

<td colspan="2" width="150" id="sale"><a href="http://www.encantoriviera.com/unit7/"onfocus="this.blur()"> 
7
<p> 
<strong>FOR SALE</strong>
<br /> 
1 Bed/ 1 Bath
<br />
824 sq ft./75 sq m.
</p>
</a>

</td>

<td colspan="2" width="150" id="sale"><a href="http://www.encantoriviera.com/unit6/"onfocus="this.blur()">
6
<p> 
<strong>FOR SALE AND RENT</strong>
<br /> 
1 Bed/ 1.5 Bath
<br />
869 sq ft./81 sq m.
</p>
</a>

</td>

</tr>
<tr>
<td colspan="12" max-height="25" class="white"><img src="http://encanto.ximg.co/avenida20.jpg" /></td>
</tr>

</table>
</div>

最佳答案

您已拥有获得预期结果所需的一切。基本逻辑存在于您提供的两个 JavaScript 函数中。您只需告诉 JavaScript 更改 backgroundColor 而不是更改 display 属性。

我建议使用更具描述性的名称创建两个新函数(例如:highlightCell)并更改在 for 循环中更改的属性。

关于javascript - onclick href 更改 td 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7315571/

相关文章:

javascript - 表单验证,缺少字段背景颜色

javascript - Next.js:尽管在 next.config.js 中有一个 exportPathMap 但未找到

html - 需要在 div 中垂直居中图像,但此处找到的答案不起作用

html - 垂直居中带有字形的文本

html - 在固定表格标题上显示工具提示

html - 如何将图像与顶部的列表水平对齐?

javascript - 无法在选中复选框时使用 JS 将 css 应用到输入字段

javascript - 如何在悬停时更改元素的颜色并在使用 jquery mouseout 时将其删除?

javascript - 无法比较条件语句中int类型的v​​ar

javascript - Firebase google 登录弹出窗口闪烁并且从不使用 Vuejs 登录?