【发布时间】:2018-01-11 18:41:24
【问题描述】:
我正在尝试创建一个基本网页,允许用户在按下按钮时创建一个新的 DIV。我成功地完成了那部分。现在要在按下时找到单个 DIV(这样我以后可以应用其他功能,例如对其进行编辑),而不使用大量重复代码,我创建/设计了一个系统来比较悬停在上面的 DIV 的颜色并找到它的 ID。但是,分配给 DIV 的颜色显然仍然为空,尽管您可以看到 CSS 更改了它的颜色。有什么建议?对不起,如果我的代码显示得很糟糕;第一次在这里写问题。
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<script type="text/javascript" src="scripts/scripts.js"></script>
<script src="scripts/jquery-3.2.1.min.js"></script>
</head>
<body>
<form onsubmit="createNewContentTile(); return false;">
<input type="submit" id="addTile" value="+">
<input type="text" id="inputTextContent" placeholder="content" maxlength="256">
</form>
</body>
</html>
JavaScript:
var tileDivIDCounter = 0;
var arrayOfTileIDs = ["tileDiv1"];
var selectTileDivIDCounter = 0;
var selectedTile = "";
function tileClicked() {
while (document.getElementById(arrayOfTileIDs[selectTileDivIDCounter]).style.backgroundcolor === "#ff0000") {
selectedTile = arrayOfTileIDs[selectTileDivIDCounter];
alert(arrayOfTileIDs[selectTileDivIDCounter]);
}
selectTileDivIDCounter += 1;
}
function createNewContentTile() {
if (document.getElementById("inputTextContent").value === "") {
alert("Enter content");
} else {
tileDivIDCounter += 1;
tileDivIDString = "tileDivID" + tileDivIDCounter;
arrayOfTileIDs.push(tileDivIDString);
var newDiv = document.createElement("div");
newDiv.setAttribute("class", "tileDiv");
newDiv.setAttribute("id", tileDivIDString);
newDiv.setAttribute("onclick", "tileClicked()");
var inputText = document.getElementById("inputTextContent").value;
var newContent = document.createTextNode(inputText);
document.getElementById("inputTextContent").value = "";
newDiv.appendChild(newContent);
var currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv); //change to bottom of wrapper
}
}
CSS:
.tileDiv {
background-color: aqua;
}
.tileDiv:hover {
background-color: #ff0000;
}
【问题讨论】:
-
您的元素
id在createNewContentTitle()中称为"tileDivID",但您在tileClicked()中引用了tileDiv1。 -
您是否使用悬停颜色来指示要编辑哪个
<div>?为什么不使用onMouseOver事件触发器? -
这将在另一种情况下工作,但是每个 onMouseOver 事件触发器都需要一个函数,并且由于创建的 DIV 的数量没有限制,如果这有意义的话,它不会是动态的。谢谢你。
标签: javascript html null