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

Есть следующий код:

var form = $('#directory-contact-form-create');

в этой переменной находится объект:

`<div id="modal"><form id="directory-contact-form-create">...</form></div>`

который далее используется как:

form.on('beforeSubmit', function() { ...})

Так все работает, но поскольку ID формы бывает разный то я могу найти ID формы по родительскому ID блока div, который всегда одинаков:

var form2 = $('#modal').find('form').attr('id');
//здесь переменная = текст (id формы)

Так вот, как мне подставить ID формы в переменную, чтобы получить объект?

т.е. чтобы:

var form = $('#directory-contact-form-create');

было равнозначно:

var form = $('#form2'); 
//здесь нужно получить объект зная id формы

Ответы (3 шт):

Автор решения: Dzorogh

Вы уверены, что вам обязательно нужно получать id? Может быть вам поможет просто использовать такой селектор?

$('#modal form');
→ Ссылка
Автор решения: Vasily

Как мне подставить id формы в переменную, чтобы получить объект?

Что бы "получить" нужный элемент из атрибута достаточно:

const attr = $("#modal").find("form").attr("id") 
const form = $("#" + attr)
→ Ссылка
Автор решения: geforgy

Из вашего вопроса выходит 2 решения: $('#modal').find('form') - это и есть ваша форма. Либо использовать простую конкатенацию строк:

var form = $('#modal').find('form');
// Или же
var form = $('#' + $('#modal').find('form').attr('id'));
→ Ссылка