繁体   English   中英

如何使用JavaScript通过按钮onclick事件更改div HTML标签

[英]How can I change div HTML tag via button onclick event using javascript

<nav class="navbar navbar-default" style="...">
    <div class="container" id="main_container" style="margin-top: -80px">
        <div>
            <div class="row">
                <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id6 }}" target="_blank">{{ id6 }}</a></div>
                <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating6 }}</div>
                <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description6 }}</marquee></div>
                <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date6 }}</div>
            </div>
            <div class="row">
                <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id7 }}" target="_blank">{{ id7 }}</a></div>
                <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating7 }}</div>
                <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description7 }}</marquee></div>
                <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date7 }}</div>
            </div>
            <div class="row" style="margin-top: 5px">
                <div class="col-xs-0 col-md-5">
                </div>
                <div class="col-xs-0 col-md-2" align="center">
                    <button class="btn btn-xs btn-default" type="button" id="my_button">History</button>
                </div>
                <div class="col-xs-0 col-md-5"></div>
            </div>
            <div class="row" style="margin-top: 5px">
                <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id8 }}" target="_blank">{{ id8 }}</a></div>
                <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating8 }}</div>
                <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description8 }}</marquee></div>
                <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date8 }}</div>
            </div>
        </div>
    </div>
</nav>

我有一个简单的标题HTML div结构,其按钮id="my_button" 在按钮事件onclick上,具有id="main_container"的第一个div标签应将css指令更改,特别是margin-top值从-80px0px并且margin-top值等于0px时应将其更改为-80px

我是Web开发的新手。 我想我需要一个带有OnClick事件处理程序的javascript脚本功能。

使用以下功能通过使用javascript更改margin-top

<script type="text/javascript">
$(function() {
    $('#my_button').click(function() {
         var margin = $('#main_container').css('margin-top');
         var newMargin = (margin=='-80px')?'0px':'-80px';
         $('#main_container').css('margin-top',newMargin);
    });
});
</script>

单击按钮时调用Javascript函数,并验证marginTop值。

的HTML

  <button class="btn btn-xs btn-default" type="button" id="my_button" onclick="test()">History</button>

JS

  function test() {
    var marginValue = document.getElementById('main_container').style.marginTop;
    if(marginValue == "-80px") {
      document.getElementById('main_container').style.marginTop = "0px";
    } else {
      document.getElementById('main_container').style.marginTop = "-80px";
    }
   }

演示

-您应使用style =“ margin:xxx%”将页边距添加到div中

您可以使用此javascript代码来在单击按钮时对其进行更改:

function MoveDiv() {
    var e = document.getElementById("YOUR_DIV_id");
    if (e.style.marginTop == '-80px')
    {
        e.style.marginTop = "0px";
    }
    else 
    {
        e.style.marginTop = "-80px";
    }
}

然后,您可以使用OnClick函数将其调用到按钮中,就像这样: <button onClick="MoveDiv()">Click me</button>

 var button = document.querySelector("#my_button"); var container = document.querySelector("#main_container"); button.addEventListener("click", function () { container.style.marginTop = "0px" }) 
 <nav class="navbar navbar-default" style="..."> <div class="container" id="main_container" style="margin-top: -80px"> <div> <div class="row"> <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id6 }}" target="_blank">{{ id6 }}</a></div> <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating6 }}</div> <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description6 }}</marquee></div> <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date6 }}</div> </div> <div class="row"> <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id7 }}" target="_blank">{{ id7 }}</a></div> <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating7 }}</div> <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description7 }}</marquee></div> <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date7 }}</div> </div> <div class="row" style="margin-top: 5px"> <div class="col-xs-0 col-md-5"> </div> <div class="col-xs-0 col-md-2" align="center"> <button class="btn btn-xs btn-default" type="button" id="my_button">History</button> </div> <div class="col-xs-0 col-md-5"></div> </div> <div class="row" style="margin-top: 5px"> <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id8 }}" target="_blank">{{ id8 }}</a></div> <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating8 }}</div> <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description8 }}</marquee></div> <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date8 }}</div> </div> </div> </div> </nav> 

但是我建议使用transform以获得更好的性能。 例如:

之前: transform: translateY(-80px) 之后: transform: translateY(0)

请尝试以下代码,我删除了您的内联样式并添加了CSS类:

<style>
#main_container { margin-top:0;}
#main_container.margin_top { margin-top:-80px;}
</style>

<nav class="navbar navbar-default" style="...">
<div class="container" id="main_container">
    <div>
        <div class="row">
            <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id6 }}" target="_blank">{{ id6 }}</a></div>
            <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating6 }}</div>
            <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description6 }}</marquee></div>
            <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date6 }}</div>
        </div>
        <div class="row">
            <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id7 }}" target="_blank">{{ id7 }}</a></div>
            <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating7 }}</div>
            <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description7 }}</marquee></div>
            <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date7 }}</div>
        </div>
        <div class="row" style="margin-top: 5px">
            <div class="col-xs-0 col-md-5">
            </div>
            <div class="col-xs-0 col-md-2" align="center">
                <button class="btn btn-xs btn-default" type="button" id="my_button">History</button>
            </div>
            <div class="col-xs-0 col-md-5"></div>
        </div>
        <div class="row" style="margin-top: 5px">
            <div class="col-xs-0 col-md-2" style="background-color: #f8f8f8;text-align: center;"><a href="http://cve.circl.lu/api/cve/{{ id8 }}" target="_blank">{{ id8 }}</a></div>
            <div class="col-xs-0 col-md-1" style="background-color: #f5f4f5;text-align: center;">{{ rating8 }}</div>
            <div class="col-xs-0 col-md-6" style="background-color: #F8F8F8"><marquee scrollamount="4">{{ description8 }}</marquee></div>
            <div class="col-xs-0 col-md-3" style="background-color: #f5f4f5;text-align: center;">{{ date8 }}</div>
        </div>
    </div>
</div>
</nav>

<script>
var button = document.getElementById('my_button');
var container = document.getElementById('main_container');
button.onclick = function(){
    container.classList.toggle("margin_top");
}
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM