使用JQuery获取元素的上一个兄弟

时间:2009-11-10 19:32:17

标签: jquery

我有一个页面,其中有多个文本框,后跟“浏览”链接,如下所示:

[textbox1]浏览
[textbox2]浏览
[textbox3]浏览

现在我想知道我推送的文本框的浏览链接。我想设置一个全局变量(如何在Javascript / JQuery中执行此操作?)并保存文本框,或者至少保存文本框的类/ id /名称,以便我知道要从浏览路由中操作哪个文本框。

我不知道文本框的id或任何内容,因为它是在运行时生成的。我所知道的是,它是浏览链接的先前兄弟。

修改 不能让它工作,这是我的jquery方法,只是为了测试它:

$(document).ready(function() {
    $('#BrowseLink').click(function() {
        alert($(this).prev('input[type=text]').attr('id'));
        return false;
    });
});

它发出警告说“未定义”......

这是我在页面上的标记:

<input id="Image"  name="Image" width="5px" type="text" value=""></input>&nbsp;<a id="BrowseLink" href="#">Browse</a>

编辑编辑 看着我的标记我解决了它,nbsp;是一个实体,因此需要prev().prev()

2 个答案:

答案 0 :(得分:4)

您可以使用.prevAll()方法:

someGlobal = $(this).prevAll('input[type=text]:last').attr('id');

要制作全局变量,请在“声明”/初始化时使用var

答案 1 :(得分:2)

// attach a click handler to all of the browse links
$('a.someClassThatAllBrowseLinksAreMarkedWith').click(function() {
    var associatedTextBoxValue = $(this).prev('input[type=text]').val();
    // TODO: do something with the value
    return false;
});