简单的设置显示:无/块与javascript
Simple setting off display: none / block with javascript
我有以下代码:
<table>
<tr class="odd"><td>Entry 1</td></tr>
<tr class="even clickable" onclick="showHide('sub2')"><td>> Entry 2</td></tr>
<tr class="even" id="sub2">
<td><ul><li>Information 1</li><li>Information 2</li></ul></td>
</tr>
<tr class="odd"><td>Entry 3</td></tr>
<tr class="even"><td>Entry 4</td></tr>
</table>
以及以下js:
function showHide(id) {
var el = document.getElementById(id);
if( el && el.style.display == 'none')
el.style.display = 'block';
else
el.style.display = 'none';
}
用这个css:
tr.odd{
background-color: #dedede;
}
tr.even{
background-color: #7ea9ff;
}
tr.clickable{
cursor: pointer;
}
tr.clickable:hover{
color: white;
}
tr[id^="sub"]{
display: none;
}
有人能告诉我,为什么它不起作用?我正在尝试显示/隐藏用id="sub2"单击行
jsfiddle 中的示例
运行代码时打开调试控制台,会收到消息"ReferenceError:showHide未定义"。
如果您将html和javascript放在一个文件中并运行,则该特定问题就会得到解决。这与jsfiddle处理源代码的顺序有关。
其次,您试图通过id获取一个元素,但为其指定类名——这是没有意义的。通过给元素id并使用它就可以了。
但这是非常笨拙的,只是用来解释为什么它不起作用。正如拉斐尔所说,你最好使用jQuery。
编辑:用链接替换html
function showHide(id) {
var el = document.getElementById(id);
if( el && el.style.display == 'block')
el.style.display = 'none';
else
el.style.display = 'block';
}
首先,在您的JSFiddle示例中,函数被封装到一个domready事件中。您应该将JavaScript的换行更改为无换行正文。这可以在左栏的第二个下拉列表中进行设置。否则将无法访问您的功能。
然后,JavaScript中的第二行搜索具有ID的元素,但文档不包含任何ID,而是包含类。document.getElementById
只能通过元素的ID来查找元素。
我建议您对此任务使用jQuery。使用jQuery,任务可以这样解决:
HTML:
<table>
<tr class="odd"><td>Product 1</td></tr>
<tr class="trigger"><td>> Product 2</td></tr>
<tr class="even"><td> Information 1</td></tr>
<tr class="even"><td> Information 2</td></tr>
<tr class="odd"><td>Product 3</td></tr>
<tr class="even"><td>Product 4</td></tr>
</table>
JavaScript:
$(document).ready(function() {
$(".trigger").click(function() {
$(".even").toggle();
});
});
JSFiddle
jQuery切换文档
我不知道为什么会发生这种情况,但您需要检查css display属性是否设置为none或为空。因此,这将从第一次触发您的函数,否则它将转到"其他",然后在下次单击时触发。
因此您需要检查以下条件:if( el && el.style.display === 'none' || el.style.display === '')
- cron作业与Javascript计时事件
- JSON重构(合并内容)与javascript
- 如何将smarty变量与javascript变量进行比较
- 为什么不't我的ruby代码与javascript文件一起插入
- Jquery滑块与Slick滑块
- 数据与Javascript中的继承冲突
- Okta与JavaScript的集成
- 将会话变量与javascript变量进行比较
- 如何将href与javascript链接
- 媒体查询与Javascript相结合
- MIME与JavaScript的关系如何
- Java与JavaScript增量运算符
- 造型:主机的聚合物元素与Javascript
- 简单的设置显示:无/块与javascript
- 将结合3个javascript块与谷歌通用分析改善/减少页面加载时间的任何显著量
- Javascript滑块与较大的中心滑动?& lt;[小大小]>
- 如何发送的值在滑块由javascript与php
- IE7 css块相对位置与Javascript错误
- Javascript性能:多个脚本块与单个更大的块
- Html范围滑块与Javascript