jquery实现计算器功能

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" type="text/css" href="test.css" />
    </head>

    <body>
        <div class="container">
            <div class="box">
                <div class="input" id="txt">
                    <!-- <span>5</span>-->
                </div>

                <div class="fun">
                    <ul>
                        <li class="store">存储</li>
                        <li class="save">取存</li>
                        <li class="back">退格</li>
                        <li class="del">清屏</li>
                    </ul>
                </div>
                <div class="bottom">
                    <ul class="num">
                        <li>7</li>
                        <li>8</li>
                        <li>9</li>
                        <li>4</li>
                        <li>5</li>
                        <li>6</li>
                        <li>1</li>
                        <li>2</li>
                        <li>3</li>
                        <li>0</li>
                        <li class="point">.</li>
                        <li class="equal">=</li>
                    </ul>
                    <ul class="operation">
                        <li>÷</li>
                        <li>×</li>
                        <li>+</li>
                        <li>-</li>
                    </ul>
                </div>
            </div>
        </div>

        <script src="jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            //文本框内容
            var $li = $("li");
            var flag = 0;
            $li.each(function() {
                        $(this).click(function() {
                                //获取输入框中的内容
                                var Text = $(".input").text().trim();
                                console.log($(this).text());

                                //判断第一个数是否为0
                                var txt = $(this).text();

                                if(flag == 0) {
                                    txt = txt.replace(/^0*/g, '');
                                    flag = 1;
                                }
                                
                            //    if(txt.match(/0\d{1-9}/)) {

                                    //if(Text.match(/^0*/g))

                                    //判断小数点,最多只能有一个小数点
                                    if($(this).text() == ".") {
                                        var n = Text.indexOf(".");
                                        if(n > -1) {
                                            //console.log("***");
                                            return false;
                                        }

                                    }

                                    $(".input").append(txt);

                                    //运算符
                                    switch($(this).text()) {
                                        case "退格":
                                            $(".input").text(Text.substr(0, Text.length - 1));
                                            break;
                                        case "清屏":
                                            $(".input").text("");
                                            break;

                                        case "=":
                                            function compute(content) {
                                                //
                                                var index = content.indexOf("+");
                                                if(index > -1) {
                                                    return parseFloat(compute(content.substring(0, index))) + parseFloat(compute(content.substring(index + 1)));
                                                }
                                                //
                                                index = content.lastIndexOf("-");
                                                if(index > -1) {
                                                    return compute(content.substring(0, index)) - compute(content.substring(index + 1));
                                                }
                                                //
                                                index = content.indexOf("×");
                                                if(index > -1) {
                                                    return compute(content.substring(0, index)) * compute(content.substring(index + 1));
                                                }
                                                //
                                                index = content.lastIndexOf("÷");
                                                if(index > -1) {
                                                    return compute(content.substring(0, index)) / compute(content.substring(index + 1));
                                                }
                                                if(content == "") {
                                                    return 0;
                                                } else {
                                                    return Number(content);
                                                }
                                            }
                                            $(".input").text(compute(Text));
                                    }

                                });

                        });
        </script>
    </body>

</html>

猜你喜欢

转载自www.cnblogs.com/150536FBB/p/9787652.html