对于如何使用名称客户端ID来定位以下输入有点困惑,尝试了很多东西但没有任何效果!
所以我在这里:
<td class="main_contact">
<input type="hidden" name="client_id" value="45">
<label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label>
</td>
以下是我的尝试:
$('.switch input').on('change',function() {
if (this.checked) {
var parent_el = $(this).parents().eq(1).closest('input[name="client_id"]').val();
// var client_id = $(parent_el[0]+' input[name="client_id"]').val();
console.log(parent_el);
} else {
alert('Its UNCHECKED');
}
});
注意:我希望从client_id
元素引用它时获取名称为$(this)
的输入值,这样我才能获得当前更改的元素输入数据每个输入的数据都有?
答案 0 :(得分:1)
你可以写.parent('selector')
,但在这种情况下,你想要父母没有条件,然后得到一个兄弟。 (您可以使用.siblings('selector')
)
$('.switch input').on('change', function() {
if (this.checked) {
var parentVal = $(this).parent().siblings('input[name="client_id"]').val();
console.log(parentVal);
} else {
alert('Its UNCHECKED');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td class="main_contact">
<input type="hidden" name="client_id" value="45">
<label class="switch">
<input type="checkbox">
<span class="slider round"></span>
</label>
</td>
答案 1 :(得分:1)
我更喜欢.closest()
方法:
$(this).closest('.main_contact').find('[name="client_id"]').val();
Difference between jQuery parent(), parents() and closest() functions