javascript - 根据选择更新字段
问题描述
一直在尝试使用 html 选择和 JavaScript 和下拉列表更新字段,但我无法让它不断更改这是代码一直在尝试使用 html 选择和 JavaScript 和下拉列表更新字段,但我无法让它不断更改这是编码:
<div class="card1">
<div class="circle"></div>
<div class="content">
<h2>Fifa 22 <div class="txt1"></div></h2>
<div class="select">
<select name="fifa22" id="editions">
<option value="Ultimate">Ultimate</option>
<option value="Standard">Standard</option>
<option value="Legacy">Legacy</option>
</select>
<img src="images/loading.png" id="loadingpng" alt="">
</div>
<a href="#" class="btn">Buy Now <div class="txt2"></div></a>
</div>
<img src="images/fifaPs.jpg" id="img1" alt="">
const txt1 = document.querySelector('.txt1');
const txt2 = document.querySelector('.txt2');
txt1.innerText = 'Ultimate'
txt2.innerText = '$99.99'
var card = document.getElementById("editions");
var selectedValue = card.options[card.selectedIndex].value;
if (selectedValue == "Ultimate") {
txt1.innerText = 'Ultimate'
txt2.innerText = '$99.99'
}else if (selectedValue == "Standard") {
txt1.innerText = 'Standard'
txt2.innerText = '$59.99'
}else if (selectedValue == "Legacy") {
txt1.innerText = 'Legacy'
txt2.innerText = '$79.99'
}
解决方案
您的代码不会更新,因为它只运行一次。为了让它在每次 select 元素发生某些事情时运行,您需要定义并附加一个“事件处理程序” - 一个响应事件运行的函数,例如单击。有两种方法可以将事件链接到“处理”它的函数。
- 在 HTML 中,通过将其添加为 select 元素的属性。HTML 属性事件
<select onchange="myHandlerFunction">
- 在 JS 中通过
.addEventListener
对元素使用方法。JS dom 事件
const card = document.getElementById("editions")
card.addEventListener("change", "myHandlerFunction")
方法1更直观一点。它适用于小型工作并在您学习时使用。
方法 2 往往是首选,因为它将关注点和语言分开。
处理程序函数作为它们的第一个参数传递事件对象。此对象包含对触发事件的元素的引用,例如
function myEventHandler(event){
const selectedValue = event.target.value
// blah blah blah
}
如果您的项目开始需要大量事件处理程序,您应该查找“事件委托”TL;DR 使用一个大事件处理程序对 DOM 树更靠前的元素进行处理。
推荐阅读
- vue.js - VueJS 使用 @click
- c# - 如何自定义 Fluent Assertions 错误消息
- scala - 如何离线或没有互联网安装 sbt
- r - 如何在 R 中的词嵌入中指定词
- php - Youtube 链接应在 PHP 网站的 youtube 应用程序中打开
- elasticsearch - Elasticsearch 7.4 集群内部的某些东西会随着读取超时而变得越来越慢
- python - 比较 2 个 csv 文件并使用 pandas 找出丢失、插入的数据和修改的数据
- c - Karatsuba 实施问题
- c# - 如何恢复 WPF MVVM 中自定义类型的默认值?
- laravel - 在 laravel 模块中使用喷射流惯性