JavaScript - 获取 #id 而不是 .val()

4
在这里是否有任何方式可以获得id而不是值:

$('#' + $(this).val()).show();

$(function() {
  $('#inputtype').change(function(){
    $('.fastallow').hide();
    $('#' + $(this).val()).show();
  });
});

HTML

<select id="inputtype" class="form-control" name="typeof"> 
     <option value="FALSE" selected>Methods</option> 
    <?php foreach ($mb as $namee): ?> <option id="<?= $namee->u_ft; ?>" value="<?= $namee->username; ?>"><?= $namee->vn; ?></option> 
    <?php endforeach ;?> 
</select> 

并且

<div class="form-row fastallow" id="1" style="display:none;">
.
.
.
</div>

我想要只显示id等于1的选项的div。

1
请展示相关的HTML代码,以便我们了解您想要实现的内容,并附上适当的书面说明。 - charlietfl
还需要花几分钟时间阅读[mcve],这与编程有关。 - charlietfl
<select id="inputtype" class="form-control" name="typeof">
<option value="FALSE" selected>方法</option> <?php foreach ($mb as $namee): ?> <option id="<?= $namee->u_ft; ?>" value="<?= $namee->username; ?>"><?= $namee->vn; ?></option> <?php endforeach ;?> </select>
- Janan
请编辑细节,而不是在评论中发布。在评论中,多行代码的格式很难阅读。 - geisterfurz007
哦,抱歉,我已经添加了它。 - Janan
请仅显示生成的HTML而不是服务器端代码。并用文字解释您要做什么。到目前为止,您想要展示什么以及它如何与<select>相关还完全不清楚。 - charlietfl
1个回答

1
你不能在页面中重复使用ID,它们是根据定义唯一的。
而是在<option>上使用数据属性,并使用:selected选择器来定位选定的<option>以访问该属性。

$(function() {
  $('#inputtype').change(function(){
    // "this" is the <select>
    $('.fastallow').hide();
    $('#' + $(this).find(':selected').data('id')).show();
  });
});
.fastallow{display:none}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="inputtype" class="form-control" name="typeof">
   <option></option>
   <option data-id="1" value="someVal">One</option>
   <option data-id="2"  value="anotherVal">Two</option>
</select>
<div id="1" class="fastallow">Content One</div>
<div id="2" class="fastallow">Content Two</div>


如果有帮助,请随意接受它。在未来,通过在发布下一个问题之前准备好代码和问题解释,您将获得更快的答案,并减少澄清问题的次数。我并不是在批评您,这只是使用该网站的学习曲线的一部分。 - charlietfl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接