我正在尝试设置在JavaScript中创建的段落元素的样式。
我正在开发一个简单的待办事项清单,以便提高自己的技能。
因此,我在JavaScript中创建了一个段落元素,并尝试使用JS对其进行样式设置。
我的HTML:
<head>
<link href='https://fonts.googleapis.com/css?family=Lato:100,300,400,300italic' rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>To Do List</title>
</head>
<body>
<h1>My Tasks</h1>
<h4><span id="number1"></span> tasks</h4>
<button id="addItem">Add item</button>
<div id="item-list">
</div>
<script src="js/script.js"></script>
</body>
我的JS:
var toDoItems = [];
var i = 1;
document.getElementById("addItem").onclick = function (){
var userInput = prompt("Enter your Todo: ")
toDoItems.push(userInput);
document.getElementById("item-list").innerHTML += "<p>"+userInput+ "</p>";
}
答案 0 :(得分:0)
使用纯Java脚本对元素进行样式设置的最简单方法如下:
document.getElementById("myDiv").style.borderColor = "red";
首先,您通过id
获得该元素。您可以像这样给元素一个id
:<div id="myDiv"></div>
然后,您可以使用document.getElementById()
函数来获取元素。
然后,您可以使用style
对象设置样式。
但是最好的方法是仍然使用样式表或使用jQuery动态地完成它。
答案 1 :(得分:0)
您应该做的是为document.getElementById("item-list")
设置变量,然后添加.style.backgroundColor('white');
或进行
document.getElementById("item-list").style.backgroundColor('white');
答案 2 :(得分:0)
使用要设置的一组样式格式创建类。然后,您可以使用函数作为下面给出的示例:
function addClass() {
var element = document.getElementById("myPara");
element.classList.add("mystyle");
}
function removeClass() {
var element = document.getElementById("myPara");
element.classList.remove("mystyle");
}
答案 3 :(得分:0)
要更改HTML元素的样式,请使用以下语法:
document.getElementById(id).style.property = new style
示例:在document.getElementById("item-list").style.color ='red';
后面添加toDoItems.push(userInput);
答案 4 :(得分:0)
只需将一个类添加到p元素并通过CSS对其设置样式
document.getElementById("item-list").innerHTML += '<p class="foo">'+userInput+'</p>';
答案 5 :(得分:0)
您可以在p标签中添加一个类名,并为该类编写CSS,这可能会对您有所帮助
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var toDoItems = [];
var i = 1;
document.getElementById("addItem").onclick = function (){
var userInput = prompt("Enter your Todo: ")
toDoItems.push(userInput);
document.getElementById("item-list").innerHTML += "<p class='className'>"+userInput+ "</p>";
}
});
</script>
<style>
.className {
border:1px solid #ccc;
}
</style>
</head>
<body>
<h1>My Tasks</h1>
<h4><span id="number1"></span> tasks</h4>
<button id="addItem">Add item</button>
<div id="item-list">
</div>
</body>
</html>
答案 6 :(得分:0)
感谢我通过在段落标签中添加一个类来弄清楚了。
答案 7 :(得分:0)
在这种情况下,使用innerHTML
(innerHTML+=
)是个坏主意。因为每次您单击按钮时,以前的p
标签将被新的p
替换。
第一步,添加具有以下功能的新todo
:
var List=document.getElementById("item-list");
function AddNewTodo(t, styles/*{style1: "value",...}*/){
var todo=document.createElement("p");
todo.innerHTML=t;
for(var s in styles) todo.style[s]=styles[s];
List.appendChild(todo);
}
真实样本:
window.onload=function(){
var List=document.getElementById("item-list");
function AddNewTodo(t, styles/*{style1: "value",...}*/){
var todo=document.createElement("p");
todo.innerHTML=t;
for(var s in styles) todo.style[s]=styles[s];
List.appendChild(todo);
}
document.getElementById("addItem").onclick = function (){
AddNewTodo(prompt("Enter your Todo: "),
{color: "#900", display: "list-item", listStyle: "inside", paddingLeft: "20px"});
}
}
<h1>My Tasks</h1>
<h4><span id="number1"></span> tasks</h4>
<button id="addItem">Add item</button>
<div id="item-list">
</div>
但是您可以使用stylesheet
代替inline style
。为此,只需像这样更改功能:
window.onload=function(){
var List=document.getElementById("item-list");
function AddNewTodo(t, styles/*{"simple style name": "simmple css value",...}*/){
var s=document.createElement("style");
document.head.appendChild(s);
var sty="";
for(var st in styles) sty+=st+":"+styles[st]+";";
s.sheet.insertRule("#item-list>p{"+sty+"}", 0);
var todo=document.createElement("p");
todo.innerHTML=t;
List.appendChild(todo);
};
document.getElementById("addItem").onclick=function(){
AddNewTodo(
prompt("Enter your Todo:"),
{"background-color": "#f0f0f0", display: "list-item", "list-style": "inside", padding: "15px"}
);
};
};
<h1>My Tasks</h1>
<h4><span id="number1"></span> tasks</h4>
<button id="addItem">Add item</button>
<div id="item-list">
</div>
提示:
第一种方法,您必须以类似CamelCase
语法(js
> border-top
的{{1}}形式传递样式,但是在第二种方法中,必须以{{1} }语法(borderTop
,...)。
其他方式:
您可以在css
标签中定义border-top, background-color
:
style
在这种情况下,您的功能将类似于:
style
完整样本:
<style type='text/css'>
#item-list>p{
color: #f90;
/*other styles*/
}
</style>
function AddNewTodo(t){
var todo=document.createElement("p");
todo.innerHTML=t;
List.appendChild(todo);
}
window.onload=function(){
var List=document.getElementById("item-list");
function AddNewTodo(t){
var todo=document.createElement("p");
todo.innerHTML=t;
List.appendChild(todo);
}
document.getElementById("addItem").onclick = function (){
AddNewTodo(prompt("Enter your Todo: "));
}
}