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);
});