2009-11-10 50 views
2

我有一個頁面,我有多個文本框,然後「瀏覽」鏈接,像這樣的元素的前一個兄弟:獲取使用JQuery

[TextBox1中]瀏覽
[TextBox2中]瀏覽
[textbox3 ]瀏覽

現在我想知道我推送哪個文本框的瀏覽鏈接。我想設置一個全局變量(如何在Javascript/JQuery中做到這一點?)並保存文本框,或至少是文本框的類/標識/名稱,以便我知道從瀏覽路由中操作哪個文本框。

我不知道文本框的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> 

編輯編輯:我的網頁上的標記看着我的標記我解決了它,是一個實體藏漢,因此需要prev().prev()

回答

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; 
}); 
+1

以前只能得到以前的兄弟姐妹。 – redsquare 2009-11-10 20:12:03

+0

不能得到它的工作,請參閱原始帖子中的我的編輯 – H4mm3rHead 2009-11-10 20:21:55

4

可以使用.prevAll()方法:

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

要使一個全局變量,只是不使用var當你「申報」 /初始化它。