搜尋

首頁  >  問答  >  主體

請問怎麼點擊背景,藍色變紅色,紅色變成藍色呢?我程式碼哪裡出錯了嗎?求助,謝謝


請問怎麼點選背景,藍色變紅色,紅色變成藍色呢?我程式碼哪裡出錯了嗎?求助,謝謝

QQ图片20171213171840.jpg


<!DOCTYPE html>

#<html>

<head>

</head>

<style>

#test1 {

width:300px;

#height:300px;

background:blue;

}

#test2 {

width:300px;

height: 300px;

background:red;

}

#</style>

<body>

#<div id ="test1" onclick="te()"></div>


</body>

##<script>

function te(){

var a = document.getElementById('test1');

if(a.id == 'test1'){

a.id = 'test2';

}else

a.id = 'test1';

}

</script>

</html>



#

思如磐石思如磐石2533 天前1671

全部回覆(6)我來回復

  • ***huihui

    ***huihui2018-01-18 14:31:34

    <!DOCTYPE html>
    
    <html>
    
    <head>
    
    </head>
    
    <style>
    
    #test1 {
    
    width:300px;
    
    height:300px;
    
    background-color:blue;
    
    }
    
    </style>
    
    <body>
    
    <div id="test1"></div>
    
    
    
    </body>
    
    <script>
    
        function test1() {
            var a = document.getElementById('test1');
    var finalStyle = a.currentStyle ? a.currentStyle : document.defaultView.getComputedStyle(a, null);/*利用判断是否支持currentStyle(是否为ie)
    13     来通过不同方法获取style*/
    if(finalStyle.backgroundColor=="rgb(0, 0, 255)"){
    
    a.style.backgroundColor="red"; 
    }
    else if(finalStyle.backgroundColor=="rgb(255, 0, 0)"){
    
    a.style.backgroundColor="blue"; 
    
    }
    
          }
      
    function addEvent(obj,type,handle){
        try{  // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本
            obj.addEventListener(type,handle,false);
        }catch(e){
            try{  // IE8.0及其以下版本
                obj.attachEvent('on' + type,handle);
            }catch(e){  // 早期浏览器
                obj['on' + type] = handle;
            }
        }
    }
    
     window.onload = function(){
            var element = document.getElementById("test1");
            addEvent(element,"click",test1);
          }
    </script>
    
    </html>


    #

    回覆
    0
  • ***huihui

    ***huihui2018-01-18 14:30:34

    #test1 {
    
    width:300px;
    
    height:300px;


    #

    回覆
    0
  • ***huihui

    <!DOCTYPE html> <html> <head> </head> <style> #test1 { width:300px; height:300px; background-color:blue; } </style> <body> <div id="test1"></div> </body> <script> function test1() { var a = document.getElementById('test1'); var finalStyle = a.currentStyle ? a.currentStyle : document.defaultView.getComputedStyle(a, null);/*利用判斷是否支援currentStyle(是否為ie) 13 來透過不同方法取得style*/ if(finalStyle.backgroundColor=="rgb(0, 0, 255)"){ a.style.backgroundColor="red"; } else if(finalStyle.backgroundColor=="rgb(255, 0, 0)"){ a.style.backgroundColor="blue"; } } function addEvent(obj,type,handle){ try{ // Chrome、FireFox、Opera、Safari、IE9.0及其以上版本 obj.addEventListener(type,handle,false); }catch(e){ try{ // IE8.0及其以下版本 obj.attachEvent('on' + type,handle); }catch(e){ // 早期瀏覽器 obj['on' + type] = handle; } } } window.onload = function(){ var element = document.getElementById("test1"); addEvent(element,"click",test1); } </script> </html>

    ***huihui · 2018-01-18 14:31:01
  • 有人@我

    有人@我2017-12-25 17:31:29

    1. 你可以用addinventlisner(),監聽點擊事件,初始化給紅色,點擊第一次改變成藍色,再點擊變紅色

    2. 準備一個class{background-color:#f00},當你點選的時候給它加上一個類別名稱,再點擊的時候讓它移除那個類別名稱

    3. 你可以用移入移出事件

    #

    回覆
    0
  • p~ang~胖

    p~ang~胖2017-12-25 11:15:13

    第二次執行的時候a是undefined。把var a = document.getElementById('test1');放在函數外面就可以了

    回覆
    0
  • dabour

    dabour2017-12-14 11:58:19

    不應該是只改個id,你匹配成功就show出另一個

    回覆
    0
  • 取消回覆