所以我之前问过similar question ...我想知道如何在document
.element .style
.property =值。解决方案很简单,而且几乎有意义 - 但显然我并不完全理解它,或者我知道为 .element 尝试相同的解决方案并不起作用。
这是我的代码:
function appendElement(handle){
element=document[handle]('div');
document.body.appendChild(element);
}
这样我可以选择创建一个新元素,或者根据id或类或索引外观或其他方式移动现有元素。当然,即使不知道正确的方法,我上面的代码对我来说也是错的,但如果没有一些帮助,它是我能做的最好的。
编辑:测试用例
/* The core instructions */
element=document.createElement('div');
document.body.appendChild(element);
/* the choosy version */
function appendElement(handle){
element=document[handle]('div');
document.body.appendChild(element);
}
appendElement(createElement);
element.innerHTML="third text";
/* SHOULD move the 'text' div under the 'third text' div*/
appendElement(getElementById('first'));

<div id="first">text</div>
<div>second text</div>
&#13;
答案 0 :(得分:-1)
在这一行appendElement(getElementById('first'));
中你没有传递一个函数,你传递调用undefined
的结果与param 'first'
,因为它找不到函数在那个上下文或一个名为getElementById
的全局函数中(所以它将是undefined
),此外你正试图执行undefined
传递一个字符串......这会引发一个错误,并且在函数存在的情况下(即你传递document.getElementById('first')
),那么你将传递执行该函数的返回值而不是函数。
如果你想传递一个函数你应该传递一个函数,那就是appendElement(document.getElementById)
,而不用参数调用它,但我认为你需要传递一个选择器到那个功能来完成你想要做的事情。所以
代码将是这样的:
function appendElement(handle, selector){
element=handle.call(document, selector);
document.body.appendChild(element);
}
appendElement(document.getElementById, 'first');
<div id="first">text</div>
<div>second text</div>
调用允许您将函数作为方法执行,并指定哪个对象将成为该调用的接收者。 Here is more info
答案 1 :(得分:-3)
我不明白你的需要。
但是,如果handle
等于“createElement”(属性为document
),则代码将会运行。