【发布时间】:2018-01-21 19:43:27
【问题描述】:
所以我使用这个非常典型的 js 代码在选择某个值时显示一个 div。
$(function() {
$('#craft').change(function(){
$('.colors').hide();
$('#' + $(this).val()).show();
});
});
但我想让这个 js 代码适用于选择 2 个选项和 2 个 div,所以我添加了另一个具有不同名称的脚本,如下所示,但它失败了。当其他选择选项选择第一个 div 时,就会出现。
$(function() {
$('#craft2').change(function(){
$('.colors2').hide();
$('#' + $(this).val()).show();
});
});
我的完整代码在这里。
1.options和div
{!! Form::select('id', $upgradeable_items, null, array('id' => 'craft')) !!}
@foreach($reals as $real)
<div id="{{$real->id}}" class="colors" style=";width: 250px; display:none">
+{{$real->type}} <img style="margin-left: 20px" class="marketpics" src="{{$real->picturePath}}">
</div>
@endforeach
2.options和div
{!! Form::select('id', $charms, null, array('id' => 'craft2')) !!}
@foreach($chars as $char)
<div id="{{$char->item_id}}" class="colors2" style="float: right;width: 250px; display:none">
<img style="margin-left: 20px" class="marketpics" src="{{$char->picturePath}}">
</div>
@endforeach
任何想法如何解决这个重叠问题...当我在 2.option 下拉列表中选择选项时,它们会出现在 1.div 中并再次重叠和重叠。但是当我从 1.option 下拉列表中选择选项时,没有问题。它正确显示在 1.div 中。
【问题讨论】:
-
两组选择选项是否具有相同的值,因此 div 具有相同的 ID 集? ID 是唯一的,只能在给定页面上使用一次,如果给定 ID 出现多次,文档查询只会找到给定 ID 的第一个实例。所以你需要让你的 ID 独一无二。
-
是的,我知道这是问题所在,但他们也有不同的课程。所以如果他们有相同的 ID,它总是会重叠你的意思吗?
-
是的。 ID 必须是唯一的。 ID / Class 组合无关紧要。文档查询假定唯一 ID。
-
有什么想法可以将唯一 ID 添加到我的第二个 div 中吗?我尝试像 id="asdasd{{$char->item_id}}" 但它不起作用。因为我需要根据选项值(我会有很多)显示不同的 div。
-
你是否也更新了相关的 jquery 选择器?
标签: javascript jquery html css