2015-10-19 50 views
0

我正在尝试在另一个元素中查找带有getElementById的元素。这两个元素都是用JS创建的,尚未附加到主体中。不幸的是,我得到以下错误:myElement.getElementById不是函数JS - 创建元素上的getElementById

这是我正在尝试做的一个例子。有没有办法让这个工作?

parentElement = document.createElement("div"); 
childElement = document.createElement("div"); 
childElement.id = "child"; 
parentElement .appendChild(childElement); 

myElement = parentElement.getElementById("child"); 

对于更详细的例子,这就是我试图做的正是:我从头做一个日期选择器(用于funz),我有这显示月份和年份的元素。您可以更改月份和年份,因此我需要在发生这种情况时更改此元素的innerHTML。我认为只更改日期和月/年标签会更清洁,而不是重新创建整个日历。为此,使用getElementById()。innerHTML显得很自然。

回答

3

DOM元素上没有getElementById方法。 id必须是唯一的。所以你可以很容易地找到它使用document.getElementById

为什么当你已经在childElement变量中获得元素时,你试图获取元素ID?

+0

我已经试过这个,当它返回null时哭了 –

+0

我已经更新了答案。 –

+0

'document.getElementById'返回'null'的原因是你还没有将这个元素添加到你的文档中。 –

0

原来你不能getElementById()的元素不在文档中。

解决方案是添加一个if/else条件来检查元素是否在正文中,或者在两种情况下都不会得到所需的结果。

Saddly增加了几行代码。这不是什么大问题,但使用getElementById()看起来很自然,因为像getElementsByClassName()这样的其他函数可以工作。也许有一天...