通过写入父div来删除Div

时间:2015-10-09 21:36:09

标签: jquery html css

我正在为项目构建一个javascript计算器。 我想要一个红色的" E"出现在" #Total"的左上角DIV。 我在总div中放了一个小div(" #hint"),称为Total div与位置:相对,"提示" div位置:绝对。 但是,只要我写任何东西(例如一个数字) 总div(使用JQuery),提示div消失。自从该计划开始 写一个" 0"对于总div,你永远看不到" E" .. 我试过设置提示div的z-index(到99),但似乎没有用。

这是index.html:

<!DOCTYPE html>
<html>
    <head>
        <title>Calculator</title>
        <link rel="stylesheet" href="style.css" />
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
        <script src="script.js"></script>
    </head>
    <body>

          <div id="calculator">

            <div id="total">
                <a id="hint">E</a>
            </div>

            <div id="operators">
                <a id="add">+</a>
                <a id="sub">-</a>
                <a id="divi">/</a>
                <a id="mult">*</a>
                <a id="equals">=</a>
            </div>
            <div id="numbers">
                <a id="n1">1</a>
                <a id="n2">2</a>
                <a id="n3">3</a>
                <a id="n4">4</a>
                <a id="n5">5</a>
                <a id="n6">6</a>
                <a id="n7">7</a>
                <a id="n8">8</a>
                <a id="n9">9</a>
                <a id="clear">CE</a>
                <a id="n0">0</a>
                <a id="clearall">AC</a>
                <a id="decimalPt">.</a>
                <a id="minus">+-</a>
            <!--    <a id="X">X</a>  -->
            </div>
          </div>
        </div>
    </body>
</html>

这里是(部分)css文件:(只需要通过咨询 &#34;总&#34; ..)

body, div, a {
    padding:0;
    margin:0;
    font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
}


#container {
    width:960px;
    margin: 10px auto;

}

#calculator {

    background-color: #999;
    width: 310px;
    height: 540px;
    border: 3px black solid;
    margin: 10px; 
    padding: 5px;
    border-radius: 10px;
    float: left;
}

#hint {
    position: absolute; 
    width: 20px;
    height: 20px;
    left: 0;
    top: 0;
    text-align: center;
    color: red;
    font-size: 14px;
}

#total {
    position: relative;     
    height: 70px;
    width: 300px;
    margin:auto;
    background-color:white;
    margin-bottom: 5px;
    text-align: right;
    font-size: 60px;
    padding: 0 5px;
}

#numbers, #operators {
    margin: auto;   
}

#operators a {
    display: block;
    width: 45px;
    height: 45px;
    float: left;
    text-decoration: none;
    color: black;
    text-align: center;
    font-size: 39px;
    padding: 2px;
    margin: 5px 6px;
    background-color: #FFF;
    border-radius: 10px;
}

#numbers a {
    display: block;
    width: 50px;
    height: 50px;
    float: left;
    text-decoration: none;
    color: blue;
    text-align: center;
    font-size: 32pt;
    padding: 10px;
    margin: 5px 15px;
    background-color: #FFF;
    border-radius: 10px;
}

#numbers > a#clearall {
    background-color: yellow;
}

#numbers > a#clearall:hover {
    background-color: blue;
    color:white;
}

#numbers > a:hover:not(#clearall) {
    background-color: #00F;
    color: white;
}

JQuery位于一个单独的文件中。这条线 导致擦除是$(&#34; #total&#34;)。text(&#34; 0&#34;);

希望你们都能帮忙......

1 个答案:

答案 0 :(得分:2)

代码行:

$("#total").text("0");

将清除#total中的所有子元素。这就是它的目的。如果您只想影响#total的部分内容并将子元素留在那里,那么您需要在#total中定位一个特定的子元素并仅更改它。

也许您想要做的是:

<div id="total">
    <span id="totalNum"></span>
    <a id="hint">E</a>
</div>

然后,您可以定位:

 $("#totalNum").text("0");

并适当调整CSS格式。然后,当您更改totalNum时,您的提示不会受到干扰。