javascript - 从许多相同的元素中单击时更改 HTML 选择标记
问题描述
我正在尝试使用 jQuery 向 HTML 页面添加一些功能,但在访问 DOM 时遇到了一些麻烦。到目前为止,我正在通过“id”访问 DOM 元素,这是因为我认为这是最简单的方法,但它有问题。对于一个独特的元素没关系,但如果我有 2 个或更多相等的元素怎么办?Id 应该是唯一的,所以我需要一种不同的方式来做到这一点。
我有一些代码可以部分满足我的需要,但正如我之前提到的,它只适用于“一个元素”,我需要做同样的事情,但有 2 个或更多“相等的元素”。因此,让我向您展示我到目前为止的代码。
<div style="background-color: indigo;">Input
<select class="" name="" id="ana_dig">
<option value="" selected disabled>Choose</option>
<option value="ana">Analogic</option>
<option value="dig">Digital</option>
</select>
<select class="input" id="dig" style="display:none;">
<option value="" selected disabled>Choose</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
</select>
<select class="input" style="display:none;" id="ana">
<option value="" selected disabled>Choose</option>
<option value="0">A0</option>
<option value="1">A1</option>
<option value="2">A2</option>
<option value="3">A3</option>
<option value="4">A4</option>
<option value="5">A5</option>
</select>
</div>
$(function() {
$('#ana_dig').change(function() {
$('.input').hide();
$('#' + $(this).val()).show();
});
});
如您所见,我有一个“div”,它有 3 个“选择”,根据第一个“选择”中选择的选项,它会显示第二个或第三个“选择”。很简单,但是如果复制并粘贴 de 'div',第二个 'div' 就不能作为第一个。如果我想要 2、3 或更多 'div' 像第一个一样工作,我该怎么办?有什么建议么?
解决方案
改用类。
通知更改没有更多的 IDS,类添加到输入您可以有多个由空格分隔的类
<div style="background-color: indigo;">Input
<select class="someclass" name="">
<option value="" selected disabled>Choose</option>
<option value="ana">Analogic</option>
<option value="dig">Digital</option>
</select>
<select class="input dig" style="display:none;">
<option value="" selected disabled>Choose</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
</select>
<select class="input ana" style="display:none;">
<option value="" selected disabled>Choose</option>
<option value="0">A0</option>
<option value="1">A1</option>
<option value="2">A2</option>
<option value="3">A3</option>
<option value="4">A4</option>
<option value="5">A5</option>
</select>
</div>
然后改为执行此操作:也可以在此处查看更改
$(function() {
$('.someclass').change(function() {
$('.input').hide();
$('.' + $(this).val()).show(); // dot is looking for class # is looking for id
});
});
推荐阅读
- android - 在后台应用程序中处理通知消息
- apache-spark - PySpark:读取镶木地板时如何读取分区列
- project-reactor - 用千分尺测量 ElasticScheduler?
- python - 提高 pandas to_csv() 将大数据写入磁盘的速度
- authentication - 授权请求标头与凭据的 POST 请求正文
- sockets - 如何在基于异步模式的 boost::asio 中接收未知大小的缓冲区
- python - 尝试使用列表理解将列表中的每个数字相乘但不起作用
- excel - 在excel中查找和更改值
- autohotkey - Excel Com 对象使用 AutoHotKey 随机不可见
- python - Can't import cross_validation from sklearn in version > 0.20