Как уже упоминалось, document.getElementsByName возвращает массив. Возможно, вы захотите дать вашему входу идентификатор с тем же именем, что и атрибут имени. (Помимо: это обычная и полезная практика для форм. Другие библиотеки js предоставляют полезные расширения, когда вы делаете это.)
<input name="some_name" id="some_name" type="text">
<script>
(function () {
var el = new YAHOO.util.Element(document.createElement('div'));
// var some_element = document.getElementByName('some_name')[0];
var some_element = document.getElementsById('some_name'); // preferred, faster
// el.appendTo(some_element);
YAHOO.util.Dom.insertAfter(el,some_element);
})();
</script>
Также обратите внимание на использование insertAfter вместо appendTo . Вы не хотите, чтобы el был дочерним элементом вашего элемента ввода. Вы хотите, чтобы это был следующий родной брат. Входы не имеют детей. И, наконец, вы добавляете эти переменные в глобальное пространство имен. Это может быть, а может и не быть проблемой, но, как правило, рекомендуется заключить код в анонимную функцию, если только вы не намерены использовать переменные в глобальной области видимости и использовать их позже, но тогда вам может потребоваться предоставить им правильное пространство имен .
Надеюсь, что это помогает (и не слишком много информации.);)