找到最近输入的id

时间:2014-02-25 17:34:15

标签: jquery html

如何找到最近输入的id?

这是html

<input type="text" id="input1" size="36" name="input1" value="1" />
<input id="show_upload_image_link_button_1" class="button upload_images" type="button" value="Upload Image" />

这是jquery

$(document).ready(function() {
$("#show_upload_image_link_button_1").click(function() {
    alert(id of input1);
});
});

3 个答案:

答案 0 :(得分:2)

对于最近的父母,您可以使用:

$(this).closest('input').attr('id');

对于最近的(较旧的)兄弟姐妹,您可以使用:

$(this).prev('input').attr('id');

对于最近(较年轻)的兄弟姐妹,您可以使用:

$(this).next('input').attr('id');

如果你需要确定最近的兄弟(年龄较小/较小),你必须编写一个自定义函数来确定每个与上下文元素索引相关的索引:

var closestSibling = null;
var older = $(this).prev('input').attr('id');
var younger = $(this).next('input').attr('id');
var siblings = $(this).siblings('input').add(this);

var currentIndex = $(siblings).index(this);
var olderIndex = $(siblings).index(older);
var youngerIndex = $(siblings).index(younger);

if (Math.abs(youngerIndex-currentIndex) > Math.abs(olderIndex-currentIndex)) {
    closestSibling = older;
}
else {
    closestSibling = younger;
}

答案 1 :(得分:0)

尝试.siblings('input')

$(document).ready(function () {
    $("#show_upload_image_link_button_1").click(function () {
        alert($(this).siblings('input').attr('id'));
    });
});

Fiddle

答案 2 :(得分:0)

在这里,您可能试图说出最接近的先前输入。因此,您可以获得这样的id DEMO

$(document).ready(function() {
    $("#show_upload_image_link_button_1").click(function() {
        alert($(this).prev('input').attr('id'));
    });
});

如果你的目标输入是第二个输入,你可以这样做.next,如下所示:

$("#input1").click(function() {
        alert($(this).next('input').attr('id'));
});
相关问题