2010-01-28 1 views
1

Мне нужно получить имя select (#Dropdown), когда его значение известно, но, похоже, не может получить синтаксис. Вот пример:JQuery: Как получить имя выбора, когда значение известно?

$(document).ready(function() 
{ 
    var countrycode = '55'; 
    var name = $("#Dropdown[value=countrycode]").text(); // fails here 
    if(name == 'Germany') 
    {..... etc 

я могу заставить его работать следующим образом в другом контексте, когда я могу использовать «это»:

var name = $(this[value=countrycode]).text(); 

... но это не доступно в первый пример.

Кто-нибудь? Благодарю.

+0

значение отборного никогда не определен, пока не будет выбрано что-то ---- см Adam поцелуя + ответ Бенуа для ответа ---- т.е., ваши #Dropdown уникален, поэтому просто используйте: var name = $ ("# Dropdown"). Attr ("name"); – davidosomething

+0

@ davidosomething ... yep, это более сложный сценарий, представление формы, где параметры выбора были первоначально сгенерированы с помощью Ajax, поэтому теперь я хочу повторно заполнить их для пользователя для более плавного опыта. – Tom

ответ

5

Вам нужно найти значение параметра в пределах выбора.

var countrycode = '55'; 
var name = $("#Dropdown option[value="+countrycode+"]").text(); 
+0

Это работает .... Большое спасибо. Решено. – Tom

2

Вы включаете «код страны» буквально в свою селекторную строку.

Там, наверное, лучший способ сделать это, но это должно работать:

var name = $("#Dropdown[value=" + countrycode + "]").text(); 
+0

Спасибо, но этот синтаксис не работает. – Tom

1

Post также HTML, кажется, своего рода неправильно - вы можете иметь только один идентификатор (#something) на странице, так что было бы не нужно что-то вроде #id[value=*].

+0

Да, обычно не требуется, но это повторное включение опций выбора $ _POST (при неудачной проверке формы) для динамических выборок, которые были заполнены Ajax при первой загрузке, поэтому страница не может их запомнить. Код страны я передаю JQuery через PHP. – Tom

+0

ну или что-то вроде '$ ('select [value = *]')' -> tag [value] ИЛИ '$ (# id)' -> id:] - не имеет смысла использовать оба, разумеется, в этой комбинации. –

+0

Спасибо за ваши комментарии, но я думаю, вы неправильно поняли этот вопрос. Представьте #Dropdown как уникальный выбор на странице. – Tom

1

попробовать:

var name = $("#Dropdown option[value=" + countrycode + "]").text() 
Смежные вопросы