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
。 - circusbred