Как перебрать элементы из класса и проверить родительский идентификатор

0

У меня есть несколько форм, и я хочу получить текст входного поля, родительский которого соответствует определенному идентификатору.

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

HTML:

<form name='form' id='67' method='post'>
   Winner: <input type='text' class='nameWinner' placeholder='name winner'>
   <input type='submit' class='getWinner'>
</form>

JavaScript:

$(".winnaarAanduiden").click(function() {
   var duel_id = jQuery(this).parent().attr("id");
   var winner = "unknown";

$(".nameWinner").each(function() {
   if($(this).parent().attr("id") == $duel_id) winner = $(this).val();
});

Я делаю что-то неправильно или неверно синтаксис m?

  • 0
    Ваша переменная называется duel_id но проверка на равенство выполняется с $duel_id . Это должен быть $(this).parent().attr("id") === duel_id
  • 0
    Да. $dualid не существует, и, хотя dualid существует, он является локальным для функции, в которой он был создан. Аналогично, winner является локальным для функции, в которой он был создан, хотя затем вы создаете глобальный winner в другой функции.
Показать ещё 3 комментария
Теги:

2 ответа

0
Лучший ответ

Нет необходимости проверять идентификатор, попробовать

$(".winnaarAanduiden").click(function () {
    var $form = $(this).closest('form');
    var winner = $form.find('.nameWinner').val() || "unknown";
});
0

Попробуй это:

$(".winnaarAanduiden").click(function() {
   var duel_id = jQuery(this).parent().attr("id");
   var winner = $('#' + duel_id).find('.nameWinner')[0].innerText;
}
  • 0
    Это не работает для меня
  • 0
    Отредактировано - должно работать сейчас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню