代码仅适用于找到的第一个元素,存在多个具有相同 id 的元素
Code only applies to first elements found, multiple elements with the same id exist
是否可以将javascript应用于具有相同ID的多个div?目前它只将其应用于第一个找到的,我猜是 [0]。是否可以循环遍历div 并以这种方式应用它?
<body>
<div id="mainHolder">
<div id="header">
<img src="images/collapse1.png" />
</div>
<div id="content">
<p>This is a collapsible panel</p>
<img src="images/bird.jpg" height="130"/>
</div>
</div>
<div id="panelBelow">
<p>A panel is placed below the collapsible panel, just to show that when the panel above collapses the panel below is also moved up.</p>
</div>
<br></br>
<div id="mainHolder">
<div id="header">
<img src="images/collapse1.png" />
</div>
<div id="content">
<p>This is a collapsible panel</p>
<img src="images/bird.jpg" height="130"/>
</div>
</div>
</body>
<script type="text/javascript">
var header = null;
var content = null;
var mainHolder = null;
var expandCollapseBtn = null;
var heightValue = 0;
header = document.getElementById("header");
content = document.getElementById("content");
mainHolder = document.getElementById("mainHolder");
expandCollapseBtn = header.getElementsByTagName('img')[0];
heightValue = mainHolder.offsetHeight;
header.addEventListener('click', handleClick, false);
mainHolder.addEventListener('webkitTransitionEnd',transitionEndHandler,false);
function handleClick()
{
if(expandCollapseBtn.src.search('collapse') !=-1)
{
mainHolder.style.height = "30px";
content.style.display = "none";
}
else
{
mainHolder.style.height = heightValue + "px";
}
}
function transitionEndHandler()
{
if(expandCollapseBtn.src.search('collapse') !=-1)
{
expandCollapseBtn.src = "images/expand1.png";
}
else{
expandCollapseBtn.src = "images/collapse1.png";
content.style.display = "block";
}
}
</script>
像
这样更改mainHolder
元素:
<div class="mainHolder">...</div>
然后像这样对每个元素addEventListener
s:
var mainHolderElements = getElementsByClassName('mainHolder');
for (var i = 0, length = mainHolderElements.length; i < length; i++) {
mainHolderElements[i].addEventListener(...);
}
只能有一个元素具有 id。
将您的 id 更改为类,并通过该类选择元素。 如这个答案:https://stackoverflow.com/a/3887663/498699
相关文章:
- 选择不带选择器的元素,仅使用元素ID
- 从元素id中获取值,而不是从javascript中的名称中获取值
- 如何将第二个元素id注入到网站元素中
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- 如何在 javascript 中将表单中的元素 id 值作为数组传递
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 如何从 jQuery 中的 ajax 函数中的类访问元素 ID
- JavaScript获取多个已知元素ID
- 使用ng repeat时元素ID重复
- 在使用onblur进行输入评估时,是否可以获得单击对象的元素id
- JQuery通过变量标识元素id:多个表行
- 当元素ID包含美元符号时,Javascript中的getElementByid.当ID包含美元符号时,
- 我得到未捕获的类型错误:无法读取属性'选项'即使定义了元素id,也为null
- 元素id未被接受为函数参数
- 使用jquery获取类元素id
- 如何在没有任何元素id的情况下检索表中的文本内容
- jquery按类确定元素id
- 获取元素ID并传递到函数中
- 使用jquery获取元素id
- JavaScript文档.getElementById(“id”)和元素id属性