Blogger Information
Blog 39
fans 0
comment 0
visits 30845
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
JavaScript第二课 : DOM树原理 ,语法类型 ,以及用一个计算器经典实例来了解和运用DOM结构 2018年9月12日 22:03
南通税企通马主任的博客
Original
757 people have browsed it

编程 : 使用js完成一个功能相对完整的计算器案例

实例div的CSS样式

div {
    width: 500px;
    height: 200px;
    background-color: lightblue;
    border: 1px solid grey;
    text-align: center;
    margin: auto;
    color: black;
    border-radius: 15px;
    box-shadow: 2px 2px 2px #999999;
}
table {
    margin: auto;
}
td {
    width: 100px;
    height: 30px;
    padding: 6px 6px;
}
input {
    width: 100%;
    height: 80%;
    border: none;
    text-align: left;
    margin-left: 15px;
}
select {
    width: 100%;
    margin-left: 12px;
}
button {
    width: 80%;
    height: 100%;
    border: none;
    background-color: lightcoral;
    color: white;
    margin-left: 5px;
}
button:hover {
    cursor: pointer;
    color: #000;
    background-color: coral;
    width: 90%;
    height: 110%;
}

实例事件主体

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="style.css">
    <title>计算器实例</title>
</head>
<body>
<div>
    <h2>简易计算器</h2>
    <form>
        <table>
            <tr>
                <td>
                    <input type="text" name="sz1" placeholder="第一个数值">
                </td>
                <td>
                    <select name="xz" id="">
                        <option value="null">请选择</option>
                        <option value="add">+</option>
                        <option value="sub">-</option>
                        <option value="mul">*</option>
                        <option value="div">/</option>
                    </select>
                </td>
                <td>
                    <input type="text" name="sz2" placeholder="第二个数值">
                </td>
                <td>
                    <button type="button" name="button">计算</button>
                </td>
            </tr>
            <tr>
                <td align="right" colspan="2"><h3>结果:</h3></td>
                <td align="left" colspan="2"><h3 id="result"></h3></td>
            </tr>
        </table>
    </form>
</div>
<script>
    let sz1 = document .getElementsByName('sz1')[0];
    let xz = document .getElementsByName('xz')[0];
    let sz2 = document .getElementsByName('sz2')[0];
    let but = document .getElementsByName('button')[0];
    let result = document .getElementById('result');

    but.onclick = function () {
        let data1 = 0;
        let data2 = 0;

        if (sz1.value.length === 0) {
            alert('第一个数值不能为空');
            sz1.focus();
            return false;
        } else if (isNaN(sz1.value)) {
            alert('第一个数值必须为数字');
            sz1.focus();
            return false;
        } else if (sz2.value.length === 0) {
            alert('第二个数值不能为空');
            sz2.focus();
            return false;
        } else if (isNaN(sz2.value)) {
            alert('第二个数值必须为数字');
            sz2.focus();
            return false;
        }else{
            data1 = parseFloat(sz1.value);
            data2 = parseFloat(sz2.value);
        }
        let xz1 = xz.value;
        let temp = 0;
        let flag = '';

        switch(xz1){
            case 'null':
                alert('请选择运算符');
                xz1.focus();
                return false;
            case 'add':
                flag = '+';
                temp = data1 + data2;
                break;
            case 'sub':
                flag = '-';
                temp = data1 - data2;
                break;
            case 'mul':
                flag = '*';
                temp = data1 * data2;
                break;
            case 'div':
                flag = '/';
                if (data2 === 0){
                    alert('除数不能为零');
                    sz2.focus();
                    xz1.value = '';
                    return false;
                }else {
                    temp = data1 / data2;
                    temp = Math.round(temp * 100) / 100;
                }
                break;
        }
        let str = '<span style="color:coral">';

        str += data1 + ' ' +flag + ' ' + data2 + ' = ' +temp;

        str += '</span>';

        result.innerHTML = str;
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结 : 最后的result的输出结果 , 还需要研究一下!!!

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments