javascript - 如何在不设置几个函数 onclick 的情况下替换多个 div?
问题描述
由于某些原因,我正在使用 vanilla JS,并在单击 li 时尝试替换 div 内容。
我试图用函数(目标,源)替换,但目标总是= id。所以我克隆了我的函数并 onclick li 插入 2 个函数 + 参数。
<body>
<li onClick="replaceContentInContainer('target', 'replace_target_div2'); replaceContentInContainerTwo('targetTwo', 'replace_target_div2_02')">View Div 2</li>
<li onClick="replaceContentInContainer('target', 'replace_target_div3'); replaceContentInContainerTwo('targetTwo', 'replace_target_div3_02')">View Div 3</li>
<div>
<span id="target">div1</span>
</div>
<div style="display:none">
<span id="replace_target_div2">div2</span>
</div>
<div style="display:none">
<span id="replace_target_div3">div3</span>
</div>
<div>
<span id="targetTwo">div1</span>
</div>
<div style="display:none">
<span id="replace_target_div2_02">div2 02</span>
</div>
<div style="display:none">
<span id="replace_target_div3_02">div3 03</span>
</div>
</body>
<script>
function replaceContentInContainer(target, source) {
document.getElementById(target).innerHTML = document.getElementById(source).innerHTML;
}
function replaceContentInContainerTwo(targetTwo, sourceTwo) {
document.getElementById(targetTwo).innerHTML = document.getElementById(sourceTwo).innerHTML;
}
</script>
我想有优雅的方式来做到这一点。
解决方案
您可以使用以下代码:
<body>
<li onClick="replaceContentInContainer('target', 'div2');">View Div 2</li>
<li onClick="replaceContentInContainer('target', 'div3')">View Div 3</li>
<div>
<span class="target">div1</span>
</div>
<div>
<span class="target">div1</span>
</div>
</body>
<script>
function replaceContentInContainer(div, text) {
var ids = document.getElementsByClassName(div);
for (var i = 0; i < ids.length; i++) {
ids[i].innerText = text;
}
}
</script>
推荐阅读
- apache-kafka - 卡夫卡 - 特定消费者的错误 - 经纪人不可用
- typescript - 如何将多个单个文件函数分组为 index.ts 中的命名和默认导出?
- mongodb - 从 BigChainDB/MongoDB 检索数据
- amazon-web-services - Terraform AWS NLB TLS 直通
- javascript - Javascript 数字上 +- 的目的是什么?
- python - Heroku Flask 应用程序在使用 POST 请求时崩溃
- reactjs - 在可编辑区域中选择匹配的单词
- html - (已保存)事件在 HTML 中被触发两次
- angular - 如何使用 Angular 9 显示多个项目轮播?
- javascript - 我正在制作一个拼字游戏,但我不知道如何随机生成 7 个字母,每次玩家使用他们的字母时