У меня есть несколько форм, и я хочу получить текст входного поля, родительский которого соответствует определенному идентификатору.
Вот мой код, победитель переменной должен указывать на текст во входном поле. Поле ввода и кнопка имеют одну и ту же родительскую форму, которая имеет определенный идентификатор (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?
Нет необходимости проверять идентификатор, попробовать
$(".winnaarAanduiden").click(function () {
var $form = $(this).closest('form');
var winner = $form.find('.nameWinner').val() || "unknown";
});
Попробуй это:
$(".winnaarAanduiden").click(function() {
var duel_id = jQuery(this).parent().attr("id");
var winner = $('#' + duel_id).find('.nameWinner')[0].innerText;
}
duel_id
но проверка на равенство выполняется с$duel_id
. Это должен быть$(this).parent().attr("id") === duel_id
$dualid
не существует, и, хотяdualid
существует, он является локальным для функции, в которой он был создан. Аналогично,winner
является локальным для функции, в которой он был создан, хотя затем вы создаете глобальныйwinner
в другой функции.