Как присоединиться к двум объектам элемента 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. Большое спасибо.
Ответы
Ответ 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();
}));
}