JavaScript-4.5-BOM 與 DOM-案例

JavaScript-4.5-BOM 與 DOM-案例

案例

一:簡單的留言板

  • 輸入暱稱和評論內容,單擊“提交內容”按鈕,可以將最新的評論插入到已有評論的下方
  • 暱稱和評論內容爲空時,不能提交
  • 提交後獲取當前時間
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>留言欄</title>
		<style type="text/css">
			#wrap{
				width: 600px;
				margin:50px auto;
				padding:0 20px 20px 20px;
				border:1px solid #dcdcdc;
			}
			#com{
				border-top:1px solid #dcdcdc;
				border-bottom:1px solid #dcdcdc;
				padding-top: 20px;
				font-size:12px;
				font-weight:lighter;
			}
			#com span{
				font-weight:bold;
				font-size:14px;
				margin-left:10px;
			}
			#com time{
				float:right;
			}
			#com p{
				font-weight:bold;
				font-size:14px;
			}
			#com td{
				font-size:12px;
				font-weight:lighter;
			}
			#comContent{
				height: 80px;
				width:400px;
			}
		</style>
	</head>
	<body>
		<div id="wrap">
			<h3>最新評論</h3>
			<div id="com">
				<div id="comment">
					網友<span>jack</span>
					<time>2019年11月13日</time>
					<p>學習使我快樂!</p>
				</div>
			</div>
			<h3>發表評論</h3>
			<div id="addComment">
				<table>
					<tr>
						<td >暱稱:</td>
						<td><input type="text" id="name"></td>
					</tr>
					<tr>
						<td>評論內容:</td>
					</tr>
					<tr>
						<td colspan="2"><textarea id="comContent"></textarea></td>
					</tr>
					<tr>
						<td></td>
						<td align='right'><button onclick="addComment()">提交評論</button></td>
					</tr>
				</table>
			</div>
		</div>
	</body>
	<script type="text/javascript">

		function getNowFormatDate() {
        var date = new Date();    // 獲取當前的時間
        var year = date.getFullYear();  // 獲取當前時間的年
        var month = date.getMonth()+1;   // 獲取當前時間的月
        var strDate = date.getDate();     // 獲取當前的日     
        var hours = date.getHours();        // 獲取當前的時
        var minutes = date.getMinutes();   // 獲取當前時間的分
        var seconds = date.getSeconds();    // 獲取當前時間秒
        // 月份設置
        if (month >= 1 && month <= 9) {
            month = "0" + month;
        }
        // 日設置
        if (strDate >= 0 && strDate <= 9) {
            strDate = "0" + strDate;
        }
        // 時設置
        if(hours>=0&&hours<=9){
        	hours="0"+hours;
        }
        // 分設置
        if(minutes>=0&&minutes<=9){
        	minutes="0"+minutes;
        }
        // 秒設置
        if(seconds>=0&&seconds<=9){
        	seconds="0"+seconds;
        }
        var currentdate = year + '年' + month + '月' + strDate + '日' + " "+ hours + ":" + minutes + ":" + seconds;
        return currentdate;
    }


		var idNum = 0;
		function addComment(){
			var inputValue = document.getElementById('name').value;      // 獲取暱稱的值
			var textValue = document.getElementById('comContent').value;  // 獲取評論內容

			// 判斷暱稱和評論內容是否爲空
			if(inputValue==''){
				alert('暱稱不能爲空');
			}
			if(textValue==''){
				alert('評論內容不能爲空');
			}

            idNum++;
			var comContent = document.getElementById('comment');   // 獲取comment元素節點
			var newComment = comContent.cloneNode(true);   // 複製comContent所有元素節點,包括子元素
			newComment.setAttribute('id',"comment"+idNum);   // 給新複製的節點設置屬性id,並隨着idNum自加改變屬性值

			newComment.getElementsByTagName('span')[0].innerText = inputValue;   // 將暱稱的值賦值到新複製的span上
			newComment.getElementsByTagName('time')[0].innerText = getNowFormatDate();
			newComment.getElementsByTagName('p')[0].innerText = textValue;   // 將評價的內容賦值到新複製的p上

			var commentDiv = document.getElementById('com');
			commentDiv.appendChild(newComment);            // 在commentDiv後添加,在comContent後添加不行


            // 初始化暱稱和評價內容
			document.getElementById('name').value = '';
			document.getElementById('comContent').value = '';
		}
	</script>
</html>

效果動態圖
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章