Преобразуйте функцию jQuery insertBefore () в before () для добавления скрытого ввода - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть блок кода, который использует jQuery для добавления скрытого поля (с соответствующими атрибутами), созданного функцией attr(). В настоящее время я использую функцию insertBefore(), как показано ниже:

$('<input>').attr({
    name: 'token',
    type: 'hidden',
    value: 'value',
}).insertBefore( $('#form_id :submit') );

Это правильно добавляет новый скрытый элемент ввода DOM перед кнопкой submit моей формы #form_id, но я бы хотел использовать before() вместо этого, так как выбор цели перед определением контента кажется мне более читабельным .

Ответы [ 2 ]

0 голосов
/ 06 апреля 2019

Может быть, это вам поможет.

$('#form_id').before('<input type="text" name="token" value="value" />');
0 голосов
/ 05 апреля 2019

Непосредственно перед тем, как опубликовать свой вопрос выше, я попробовал еще раз, используя before() с нуля, и каким-то образом мне это удалось. Поэтому я решил опубликовать свой вопрос и ответ (решение) в надежде, что это может помочь кому-то еще, пытающемуся сделать то же самое в будущем:

$('#form_id :submit').before(
    $("<input>", {
        name: 'token',
        type: 'hidden',
        value: 'value',
    })
);

Этот код по существу возвращает новый элемент ввода DOM с установленными атрибутами в объекте {}, который мы передали. Этот возвращаемый элемент является аргументом content, который нам нужно передать before(), чтобы вставить наше скрытое поле перед элементом в нашем селекторе, в данном случае кнопкой submit нашего идентификатора.

...