JS - 得到#id而不是.val()

时间:2018-05-06 13:30:37

标签: javascript php jquery

有没有办法获取id而不是value where

  

$('#' + $(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 个答案:

答案 0 :(得分:1)

您无法在页面中重复ID,根据定义它们是唯一的

使用<option>上的数据属性,并使用:selected选择器定位所选<option>以访问该属性

&#13;
&#13;
$(function() {
  $('#inputtype').change(function(){
    // "this" is the <select>
    $('.fastallow').hide();
    $('#' + $(this).find(':selected').data('id')).show();
  });
});
&#13;
.fastallow{display:none}
&#13;
<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>
&#13;
&#13;
&#13;