Jquery 从以开始的id获取最近的组件

Jquery 从以开始的id获取最近的组件,jquery,Jquery,我有一个类似于这个的树列 <div class="col-md-4 column"> <div class="form-group"> <input type="hidden" name="identityCardList[0].identityCardId"> <label for="identityCardType1" class="col-sm-3 control-label">Type</label

我有一个类似于这个的树列

<div class="col-md-4 column">
    <div class="form-group">
       <input type="hidden" name="identityCardList[0].identityCardId">
       <label for="identityCardType1" class="col-sm-3 control-label">Type</label>
       <div class="col-sm-9">
           <select id="identityCardType1" name="identityCardList[0].identityCardType" class="form-control">
           </select>
       </div>
   </div>

   <div class="form-group">
       <label for="idCardValue1" class="col-sm-3 control-label">Valeur</label>
       <div class="col-sm-9">
           <input type="text" class="form-control" id="idCardValue1" name="identityCardList[0].value" placeholder="Entrer la valeur">
       </div>
   </div>

   <div class="form-group">
       <label for="expirationDateCard1" class="col-sm-3 control-label">Expiration</label>

       <div class="col-sm-9">
           <div class="input-group date" id="expirationDateCardPicker1">
               <input type="text" id="expirationDateCard1" name="identityCardList[0].expiration" class="form-control"><span class="input-group-addon"><i class="glyphicon glyphicon-th"></i></span>
           </div>
       </div>
   </div>

   <div class="form-group">
       <div class="col-sm-offset-3 col-sm-9">
           <div class="checkbox">
               <label><input type="checkbox" name="identityCardList[0].lodgerOwn" value="">Garde sur eux</label>
           </div>
       </div>
   </div>
</div>

<div class="col-md-4 column">
...
</div>

<div class="col-md-4 column">
...
</div>
我处于
级别

因此,我尝试使用
最近的
查找
,但没有成功

$("select[id^='identityCardType']").on('change', function (e){
    var select = $(e.target);
    var selectedOption = select.find("option:selected");

    if(selectedOption.data("card-expiration")==true){
        //disabled nearest input expidrationDateCard            
        //var inputExpiration = select.parent().parent().parent().closest(input[id^='expirationDateCard']);
        var inputExpirationselect.parent().parent().parent().closest($("input[id^='expirationDateCard']"));
    }   
});
我从未得到预期的值。

应该是
。next()


你可以像这样重写你的代码

$("select[id^='identityCardType']").on('change', function(e) {
    var selectedOption = $(this).find("option:selected");
    if (selectedOption.data("card-expiration") == true) {
        var inputValue = $(this).closest(".form-group").find("input[id^='expirationDateCard']").val();
    }
});

尝试以下操作:您可以使用
closest()
获取父
col-md-4列
div,然后找到
expirationDateCard
输入将其禁用

$("select[id^='identityCardType']").on('change', function (e){
    var select = $(e.target);
    var selectedOption = select.find("option:selected");

   //disabled nearest input expidrationDateCard 
   $(this).closest('.col-md-4.column').find('div.input-group.date input[id^="expirationDateCard"]').attr('disabled',selectedOption.data("card-expiration")==true);

});

$(此)。最近('.col-md-4列')未发现任何令人担忧的错误,它必须是
$(此)。最近('.col-md-4.column')
,请查找更新的答案不工作,此选择器正常$(此)。最近(“.form group”).parent()。查找(“输入[id^='expirationDateCard'])
$("select[id^='identityCardType']").on('change', function(e) {
    var selectedOption = $(this).find("option:selected");
    if (selectedOption.data("card-expiration") == true) {
        var inputValue = $(this).closest(".form-group").find("input[id^='expirationDateCard']").val();
    }
});
$("select[id^='identityCardType']").on('change', function (e){
    var select = $(e.target);
    var selectedOption = select.find("option:selected");

   //disabled nearest input expidrationDateCard 
   $(this).closest('.col-md-4.column').find('div.input-group.date input[id^="expirationDateCard"]').attr('disabled',selectedOption.data("card-expiration")==true);

});