【发布时间】:2011-09-03 08:58:01
【问题描述】:
function labelOnClick () {
function makeDivId(id) {
return id + "_div";
};
var div = this.getElementById(makeDivId(this.id));
if (div) {
div.parentNode.removeChild(div);
} else {
div = document.createElement("div");
div.innerHTML = "welcome";
div.id = makeDivId(this.id);
this.appendChild(div);
}
}
<label id="1" onclick="labelOnClick()" > BROWSER </label>
<label id="2" onclick="labelOnClick()"> GAMING CONSOLE </label>
在上面的示例中,我尝试在单击标签时创建 div 元素,并在再次单击标签时删除创建的 div 元素,但它不起作用。
【问题讨论】:
-
你有两个问题,第一个问题是
getElementById是document的方法,而不是HTMLElement。第二个是 this 关键字的错误使用。使用内联事件,您需要将其作为参数传递,因为this将引用window。
标签: javascript dom-events dom-manipulation