#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь получить доступ к каждому отдельному элементу, т.Е. опции, определенной для окна списка (или выпадающего списка).
По какой-то причине код, который я использую, не работает. Это приведено ниже—
$(jQuery('input', $(this).parent('form'))).each(function() {
element= $(this);
textmsg=" Element # " (count 1) "...Name of this input element = " $(this).attr('name') " multiplechoice-" $(this).attr('multiple');
textmsg= textmsg "...Also, for this element, the value is " $(this).val() " and type =" $(this).attr('type');
alert (textmsg);
var listofoptions = new Array();
type=$(this).attr('type');
if(type=="select")//this means we have to go through the children for this select element, to obtain the values for each option
{
var elements= $('option', this);
for(var i=0; i<elements.length; i )
{
// add $(this).val() to your list
alert("Value of this option=" $elements[i].val());
});
}
});
Как мне заставить приведенный выше код работать? Или вы можете предложить альтернативный способ доступа к каждому значению параметра? Спасибо…
Ответ №1:
Чтобы выбрать все входные данные, вам нужно будет использовать :input
селектор, а не только $('input')
, поскольку при этом будут выбраны входные данные по имени тега, и выбор будет исключен.
Так что
$(this).parent('form').find(':input')
Кроме того, поскольку у type
элемента нет select
атрибута. Вместо этого вы могли бы использовать .is(), чтобы проверить, является ли это выбором.
$(this).is('select')
Редактировать: для оператора if я бы сделал следующее
if( $(this).is('select') )
{
$(this).find('option').each(function(){
alert( $(this).val() );
});
}
Вот скрипка
Комментарии:
1. @Intersellar_Coder — Я изменил первоначальный вызов jquery в соответствии с вашим комментарием, я также изменил условие ‘if’ в соответствии с вашим ответом — теперь условие if равно — if ($(this).is(‘select’)) — однако я все еще не могу получить какое-либо значение параметра… Связано ли это с ошибкой в следующем— —var elements= $(‘option’, this);— или это что-то еще… Спасибо…
Ответ №2:
тег выбора не является входом, поэтому он никогда не будет частью выбора
Вы могли бы попробовать
$("input, select")