使用一个下拉菜单更改多个元素
Changing multiple elements with one drop down menu
为什么这个小提琴不工作:
jspart基于类名修改span内容
<label>Change:</label>
<select name="list" id="list">
<option value="Test_a" selected>Test_a</option>
<option value="Test_b">Test_b</option>
<option value="Test_c">Test_c</option>
<option value="Test_d">Test_d</option>
</select>
<br/>1: <span name="result" class="result">Test_a</span>
<br/>2: <span name="result" class="result">Test_a</span>
<br/>3: <span name="result" class="result">Test_a</span>
<script>
var list1 = document.getElementById('list');
var tag1 = document.getElementsByClassName('result');
for (var i = 0; i < elems.length; i++) {
list1.onchange = function () {
tag1.innerHTML = this.value;
};
};
</script>
我希望能够改变所有三个spans
(class="result"
),以显示下拉菜单选择的相同值。
它的工作很好,如果我使用getElementById
,只有一个span
结果与id="result"
。
我想这就是你想要的。当列表更改时,用列表的值更新所有的span
var list = document.getElementById('list');
var spans = document.getElementsByClassName('result');
list.onchange = function () {
for (var i = 0; i < spans.length; i++) {
spans[i].innerHTML = this.value;
}
}
为什么这个小提琴不能用
因为代码中的tag1
不是对单个DOM元素的引用,它将具有.innerHTML
属性,但是该方法返回匹配元素的HTMLCollection,如果您想单独操作它们,则必须循环:
list1.onchange = function () {
for (var i=0, l=tag1.length; i<l; i++) {
tag1[i].innerHTML = this.value;
};
};
相关文章:
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 第二个下拉菜单元素上的重复下拉Javascript效果
- Bootstrap下拉菜单不选择元素.需要下拉按钮组设计
- 如何使用选择下拉菜单更改元素
- 如果元素是在循环中创建的,则引导下拉菜单不会触发单击事件
- 哪个元素会影响我的jquery下拉菜单的位置-->使其正确运行
- 求和2个跨度元素中的两个值(用户可以通过下拉菜单选择每个跨度元素的值)
- 如何创建一个“;收藏夹栏”;通过将表格元素拖动到下拉菜单中
- 如何隐藏下拉菜单,如果我点击身体任何元素
- 当DOM元素被聚焦时隐藏下拉菜单
- HTML和需要下拉菜单来重叠元素
- 动态添加多个元素到web表单-下拉菜单
- 下拉菜单移动元素
- 带有下拉菜单的动态导航栏会干扰下拉菜单元素的宽度
- 如何在没有元素ID的下拉菜单中选择Javascript选项?
- ui-选择显示数组元素作为下拉菜单中的选项
- 使HTML表的三个元素成为下拉菜单
- 使用jQuery从下拉菜单中删除html元素
- 使用javascript在svg元素上创建下拉菜单
- 保持视口或窗口宽度中的绝对元素(下拉菜单)