问答详情
源自:4-1 编程挑战

className和DOM修改事件属性为什么不可行。

<!DOCTYPE HTML>
<html>

<head>
    <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
    <title>javascript</title>
    <style type="text/css">
    body {
        font-size: 12px;
    }
    
    #txt,
    .txtclass {
        height: 400px;
        width: 600px;
        border: #333 solid 1px;
        padding: 5px;
    }
    
    p {
        line-height: 18px;
        text-indent: 2em;
    }
    </style>
</head>

<body class="bodyclass" onload="GiveEvent()">
    <h2 id="con">JavaScript课程</H2>
    <div id="txt" class="txtclass">
        <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5>
        <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p>
        <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p>
        <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p>
    </div>
    <form>
        <!--当点击相应按钮,执行相应操作,为按钮添加相应事件-->
        <input type="button" value="改变颜色" id="btnColor" onclick="ChangeColor('')" />
        <input type="button" value="改变宽高" onclick="ChangeDimension('txt')" />
        <input type="button" value="隐藏内容" onclick="HideObj('txt')" />
        <input type="button" value="显示内容" onclick="ShowObj('txt')" />
        <input type="button" value="取消设置" onclick="ResetStyle('txt')" />
    </form>
    <script type="text/javascript">
    var myObj;
    //赋予事件属性
    function GiveEvent() {
        document.getElementById("btnColor").onclick = "ChangeColor('txt')";
    }
    //定义"改变颜色"的函数
    function ChangeColor(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) {
            alert("null");
            return;
        }
        myObj.style.color = "red";
        myObj.style.backgroundColor = "#ccc";
    }

    //定义"改变宽高"的函数
    function ChangeDimension(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.width = "100px";
        myObj.style.height = "100px";
    }
    //定义"隐藏内容"的函数
    function HideObj(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.display = "none";
    }

    //定义"显示内容"的函数
    function ShowObj(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        myObj.style.display = "block";
    }
    //定义"取消设置"的函数
    function ResetStyle(strID) {
        myObj = document.getElementById(strID);
        if (myObj == null) return
        if (confirm("是否取消设置") == false) return
        myObj.className = "txtclass";
    }
    </script>
</body>

</html>

现在遇到两个问题:
1.取消样式,我想用className,但好像没有实现;
2.想通过DOM来修改onclick事件,也没有实现。

提问者:来自疯人院的我 2015-08-12 10:21

个回答

  • 伊兮尘昔
    2015-08-12 18:38:30

    问答里面有相同的问题,你自己找找,我回答过的