JSFiddle - React, Tailwind, and code Playground
HTML
<div class="wrap">
<div class="item">
<input type="text" id="text" placeholder="請輸入事項...">
<select id="select" onchange="color();">
<option value="normal">一般</option>
<option value="important">重要</option>
<option value="urgent">緊急</option>
</select>
<a href="#" onclick="add();">新增</a>
</div>
<div class="content">
<h2>代辦事項:</h2>
<a href="#" onclick="sumbit();">匯出</a>
<a href="#" onclick="save()">儲存</a>
<hr>
</div>
<ul id="event">
</ul>
</div>
CSS
*{
list-style: none;
text-decoration: none;
padding: 0;
margin: 0;
}
.wrap{
width: 680px;
margin: auto;
background-color: #FFFDD0;
}
.item{
display: flex;
justify-content: center;
margin: 10px 0;
padding-top: 10px;
}
#text{
text-align: center;
border: solid 1px #ccc;
border-radius: 5px;
margin-right: 1px;
}
a:hover{
color:#f00;
}
#event{
text-align: center;
}
h2{
color: #f00;
}
li{
margin-top: 5px;
font-weight: bold;
position: relative;
}
.finish-btn{
color: #fff;
background-color: #f00;
padding-right: 5px;
border-radius: 10px;
border: none;
text-align: center;
padding: 0 10px;
position: absolute;
right: 50px;
top:0px;
}
li div{
display: inline-block;
color: green;
display:none;
margin-left: 10px;
}
.remove-btn{
float: right;
border: none;
color: #808080;
background-color: #FFFDD0;
padding-right: 5px;
}
button:hover{
color: #f00;
cursor: pointer;
}
h2{
text-align: center;
}
.content{
text-align: right;
}
.content a{
display: inline-block;
padding: 5px;
}
select{
border: #ccc;
border-radius: 5px;
margin-right: 8px;
}
.normal{
color: #000;
}
.important{
color: #FF6600;
}
.urgent{
color: #f00;
}
.normal-text{
background-color: #ccc;
}
.important-text{
background-color:#ff6600
}
.urgent-text{
background-color:#f00;
}
.none-text{
background-color: #fff;
}
JavaScript
function add(){
var text=document.querySelector("#text").value;
if(text==""){
alert("請輸入事項");
}else{
var li=document.createElement('li');
var span=document.createElement('span');
var removeBtn=document.createElement('button');
var finishBtn=document.createElement('button');
var finishText=document.createElement('div');
var event=document.querySelector("#event");
var select=document.querySelector("#select").value
span.textContent=text;
finishBtn.textContent="標示為已完成";
removeBtn.textContent="刪除";
finishText.textContent="(已完成)";
event.append(li);
li.append(span);
li.append(finishText);
li.append(finishBtn);
li.append(removeBtn);
removeBtn.onclick=del;
finishBtn.onclick=finish;
li.className=select;
finishBtn.className='finish-btn';
removeBtn.className='remove-btn';
var text=document.querySelector("#text");
text.className="none-text";
text.value="";
}
function del(){
li.remove();
}
}
function sumbit(){
var spans=document.querySelectorAll("#event li span");
var text="";
var num=1;
for(var span of spans){
if(span.closest("li").className=="urgent"){
text=text+" ("+num.toString()+') '+"**"+span.textContent+'**'+" ";
}else if(span.closest("li").className=="important"){
text=text+"("+num.toString()+') '+"*"+span.textContent+'*'+" ";
}else{
text=text+" ("+num.toString()+') '+span.textContent+" ";
}
num++;
}
alert('代辦事項:'+text);
}
function color(){
var select=document.querySelector("#select").value;
var text=document.querySelector("#text");
if(select=='important'){
text.className='important-text';
}else if(select=='urgent'){
text.className='urgent-text';
}else{
text.className='normal-text';
}
}
function finish(){
var div=event.target.closest('li').querySelector('div');
...