Подтвердить что ты не робот

Как присоединиться к двум объектам элемента 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(), - это только элемент ввода, а не выбор. Как я могу объединить эти два элемента формы в функции возврата? Если это невозможно с jQuery, то с помощью обычного JavaScript. Большое спасибо.

4b9b3361

Ответ 1

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

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

Ответ 2

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

$hiddenInput.after($select);

Это положит $select после $hiddenInput, достигнув того, что вы хотите получить.

Ответ 3

Вы можете использовать следующее:

this.MergejQueryObjects = function(arrayOfJqueryObjects) {
        return $($.map(arrayOfJqueryObjects, function (el) {
            return el.get();
        }));
    }