找到最近的课程onclick

时间:2016-09-21 13:15:36

标签: jquery

我有以下HTML:

<div class="col-md-10">
   <input type="text" name="postcode" class="postcodeinput" /> 
</div>

<div class="col-md-2">
    <a class="picklocation"><i class="fa fa-search" aria-hidden="true"></i>   
    </a>
</div>

当你点击“pickuplocation”时,我需要获得“postcodeinput”的值。

问题是页面上有多个邮政编码循环,因此我不能只使用$('.postcodeinput').val(),因为有两个,并且两者都在同一个函数中处理。

我想要做的是找到最接近的元素.postcodeinput并获取值。我尝试了以下jQuery:

$('.picklocation').click(function() {
    var postcode = null;
    console.log($(this).prev('.postcodeinput').val());
});

我试过这个,但是,我只是'未定义'

2 个答案:

答案 0 :(得分:1)

您需要遍历postcodeinputpicklocation父元素的兄弟元素的子元素。

$('.picklocation').click(function() {
    console.log($(this).parent().prev().find('.postcodeinput').val());
});

答案 1 :(得分:0)

我做了另一个解决方案。现在,在我制作片段之后,我意识到它看起来像是Satpal给的那个(你可以使用那个)。你应该使用我的解决方案,以防你的HTML发生变化,并希望更具体地了解在哪里寻找价值。

首先查找按钮的父级(即div),然后搜索具有子级.postcodeinput的上一个元素(div)。

div中的

<{1}}并获取它的价值

第三只有当该值不为空时...用它做某事(在这种情况下写入控制台)

&#13;
&#13;
.postcodeinput
&#13;
$('.picklocation').click(function() {
    var postcode = $(this).parent("div").prev("div").has(".postcodeinput")
    var postcodeVal = $(postcode).find('.postcodeinput').val();
    if( postcodeVal != 0) {
    console.log(postcodeVal);
    }
});
&#13;
&#13;
&#13;