如前所述, document.getElementsByName 返回一个数组。您可能希望为您的输入提供一个与 name 属性同名的 ID。(旁白:这对于表单来说是常见且良好的做法。当您这样做时,其他 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 成为输入元素的子元素。你希望它成为下一个兄弟姐妹。输入没有子级。最后,您将这些变量添加到全局命名空间。这可能是也可能不是问题,但是将代码包装在匿名函数中通常是一个好主意,除非您打算让变量具有全局范围并稍后重用它们,但是您可能希望为它们提供适当的命名空间.
希望有帮助(而不是太多的信息。);)