如何在jquery中获取父元素?

时间:2017-10-29 16:55:50

标签: jquery

对于如何使用名称客户端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)的输入值,这样我才能获得当前更改的元素输入数据每个输入的数据都有?

2 个答案:

答案 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