2009-11-10 6 views
2

У меня есть страница, где у меня есть несколько текстовых полей с последующей ссылкой «Обзор», как это:Получение предыдущий родственный элемент с помощью JQuery

[TextBox1] Обзор
[TextBox2] Обзор
[textbox3 ] Просмотр

Теперь я хочу знать, какую ссылку на текстовое поле я нажал. Я хочу установить глобальную переменную (как это сделать в Javascript/JQuery?) И сохранить текстовое поле или, по крайней мере, класс/id/name текстового поля, чтобы я знал, какое текстовое поле должно работать с маршрутизацией просмотра.

Я не знаю идентификатор или что-то в текстовом поле, так как это генерируется во время выполнения. Все, что я знаю, это то, что это предыдущий брат к ссылке на просмотр.

EDIT: Брус заставить его работать, это мой метод 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> 

EDIT EDIT Глядя на мою разметку, я решил ее, nbsp; является юридическим лицом как хорошо, следовательно, потребность в 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

prev только когда-либо приобретает предыдущий брат. – redsquare

+0

не могу заставить его работать, PLS см. Мои правки в оригинальном посте – H4mm3rHead

4

Вы можете использовать .prevAll() метод:

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

Чтобы сделать глобальную переменную, просто не использовать var, когда вы «объявить»/отформатируйте ее.

Смежные вопросы