我想显示一个基于初始选择值的类的div id。理想情况下,所有div最初都是隐藏的,只有ID与select下拉列表的类匹配的div才会显示。因此,下面的选择a或D都将显示div ID a。
我当前的代码如下所示:`
<select name="milestone_tag" id="milestone_tag"
<option value="1" class="a">Selection A
<option value="2" class="b">Selection B</option>
<option value="3" class="a-b">Selection C</option>
<option value="4" class="a">Selection D</option>
</select>
<div id="a">
<input name="milestone_a" />
</div>
<div id="b">
<input name="milestone_b" />
<div id="a-b">
<input name="milestone_a" />
<input name="milestone_b" />
</div>
$('#milestone_tag').change(function() {
$("#a,#b,#a-b").hide();
$($(this).find('option:selected').attr('class')).show();
});任何帮助都将不胜感激!
发布于 2012-04-01 00:05:02
您只传入了option的类名,需要在它前面加上一个选择器类型。在本例中是div的id
你基本上是在需要$('#a').show();的时候做这个$('a').show();
$('#' + $(this).find('option:selected').attr('class')).show();发布于 2012-04-01 00:09:37
你把#忘在选择器前面了。将您的jQuery代码放入
$(document).ready
$(document).ready(function () {
$("#a,#b,#a-b").hide();
$('#milestone_tag').change(function() {
$("#a,#b,#a-b").hide();
var a = "#"+$(this).find('option:selected').attr('class');
$(a).show();
});
});jSFiddle
发布于 2012-04-01 00:07:28
您需要添加选择器,以便让jQuery知道您希望它是class还是id,因为.attr()不添加选择器,只添加属性的值:
$('.' + $(this).find('option:selected').attr('class')).show();对于id
$('#' + $(this).find('option:selected').attr('id')).show();希望这能有所帮助。
https://stackoverflow.com/questions/9957407
复制相似问题