Как объединить два объекта элемента jQuery? .add () не работает

Я нахожусь внутри функции, и мне нужно вернуть объект jQuery с двумя элементами. Внутри функции, которую я имею, например:

function getInput() {
    $hiddenInput = $('<input type="hidden">');
    //(other code)
    $select = $('<select></select>');
    //(other code)
    $hiddenInput.add($select);
    return $hiddenInput;
}

А снаружи у меня есть:

$myContainer.append(getInput());

Ожидаемый результат будет:

<div id="container"><input type="hidden"><select></select></div>

Но единственное, что я получаю прямо сейчас. add () является только элементом ввода, а не выбором. Как объединить эти два элемента формы в функции return? Если это невозможно с jQuery, то с простым JavaScript. Большое спасибо.

28
задан Alejandro García Iglesias 26 August 2010 в 17:45
поделиться

2 ответа

add() создает (и возвращает) новый объект jQuery, который является объединением исходного набора и того, что вы добавляете к нему, но вы по-прежнему возвращаете исходный в вашей функции. Похоже, вы хотели сделать это вместо этого:

function getInput() {
    $hiddenInput = $('<input type="hidden">');
    //(other code)
    $select = $('<select></select>');
    //(other code)
    return $hiddenInput.add($select);
}
48
ответ дан 28 November 2019 в 03:06
поделиться

Вы можете использовать

$hiddenInput.after($select);

Это поместит $select после $hiddenInput, достигнув желаемого.

5
ответ дан 28 November 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: