jQuery: настройка списка выбора 'selected' на основе текста, странная ошибка

Я использовал следующий код (с jQuery v1.4.2), чтобы установить атрибут «selected» списка выбора на основе его «текстового» описания, а не «value»:

$("#my-Select option[text=" + myText +"]").attr("selected","selected") ;

Этот код работал нормально, пока я не заметил один список выбора, в котором произошел сбой, в зависимости от сопоставляемого текста. После некоторого потягивания волос я понял, что это терпит неудачу только в тех случаях, когда текст был одним словом (без пробелов, без буквенных символов). (Все мои предыдущие использования этого кода хорошо работали со списками выбора, состоящими исключительно из химических слов, состоящих из нескольких слов.)

Например, в одном списке выбора он работал нормально:
фарбитовая кислота
25-Д-spirosta-3,5-диен
pogostol (# Pogostemon #)

Не удалось с:
глюкоза
аденин

Я пытался любым способом придумать текстовую переменную, заключенную в кавычки (одинарные и двойные), но безрезультатно. (Но почему отдельное слово должно заключаться в кавычки, если нет фразы из двух слов?)

Я старался изо всех сил кодировать текст там и имел тот же результат.

Это работает:

$("#constituent option[text=#a#-allocryptopine]").attr('selected', 'selected');

Это работает:

$("#constituent option[text=5-O-methylrisanrinol]").attr('selected', 'selected');

Это не сработало :

$("#constituent option[text=adenine]").attr('selected', 'selected');

Я попробовал жесткие цитаты кодирования. Этот не работал :

$("#constituent option[text='glucose']").attr('selected', 'selected');

Я не мог получить жестко закодированные кавычки (одинарные или двойные) для работы с любым текстом .

Стоит отметить, что кавычки являются приемлемыми при использовании атрибута «значение». Например, оба они работают нормально:

$("#constituent option[value='3']").attr('selected', 'selected');

$("#constituent option[value=3]").attr('selected', 'selected');

Ниже приведен код, демонстрирующий проблему. Два списка выбора, первый из которых состоит из простых слов, второй из двух словосочетаний. Когда страница загружается, она пытается установить значение каждого списка выбора. Код jQuery работает для второго списка, но не для первого. (Я попытался вставить пробел в 'monkey', чтобы получить 'mon key', и это сработало!)

Рабочая демонстрация кода ниже - здесь .

Я был бы очень признателен за понимание что я тут делаю не так Или даже альтернативный синтаксис селектора для использования атрибута 'text'. Заранее спасибо всем, у кого есть время помочь.


 



  

   





   

   




51
задан Stuart Allen 4 September 2010 в 12:52
поделиться