#javascript #jquery
#javascript #jquery
Вопрос:
у меня есть строка, подобная этой :
string_data = "<option value='1'>ahmad</option><option value='2'>mohammad</option><option value='3'>ali</option>"
теперь я хочу получить значение атрибута value параметров и предупредить об этом. для этого я пишу это :
$(string_data).contents()
.each(function(){
value = $(this).attr('value');
text = $(this).text();
alert(value);
});
но этот код возвращает undefined для всех из них.
кроме того, string_data — это строка, которую я получаю из php-скрипта с Ajax через метод jQuery $.post().
я использую jquery 1.6 .
Ответ №1:
contents()
Метод извлекает дочерние элементы ваших элементов, которые в вашем случае являются текстовыми узлами. Опустите вызов этого метода для перебора <option>
элементов:
$(string_data).each(function(){
value = $(this).attr('value');
text = $(this).text();
alert(value);
});
Ответ №2:
Я не уверен, что допустимо загружать string_data подобным образом, когда jQuery ожидает идентификатор. Вероятно, это должно быть больше похоже:
$('#some_hidden_select').html(string_data).find("option")
.each(function(){
value = $(this).attr('value');
text = $(this).text();
alert(value);
});
Ответ №3:
Попробуйте:
$(string_data).find("опция") .каждый(функция(){ значение = $(this).attr('значение'); text = $(this).text(); предупреждение (значение); });