zoukankan      html  css  js  c++  java
  • JavaScript自触发时的参数传递

    触发前台的Html按钮,调用客户端事件时,如何点击该按钮而去动态的改变该按钮的一些属性,刚开始的时候我是把该按钮的的id手动写进去,后来发现这个方法很有缺陷,一旦你的前台的按钮都是动态生成的话,这样的操作将会对你的代码很麻烦。后来我停下来仔细想了想,难道所有的都要这样写吗,难道没有其它的方法吗?有时候我发觉自己把一个问题搞得特别复杂的时候,我就会停下来思考一会,是不是自己的方向错了,有没有其他更好的解决方案。后来我翻阅了一些资料,查阅了一些工具书,才发现自己的做法真的很愚蠢,这所有的一切仅仅就一个“this”参数就可以搞定了,也就是说“this”对象代表的就是该按钮对象本身,自然你调用的改变的属性的函数所改变的就是该按钮的属性了。

        例如下面的代码:

                var num = document.getElementById('LabelTotalNum').innerText;
        var tr = "";
        var _str = "";
        tr += '<table cellpadding="2px" cellspacing="2px">';
         for (var i = 0; i < num / 6; i++) {
            tr += '<tr>';
            for (var j = 1; j <= 6; j++) {
                _str = "Judge" + (i * 6 + j);
                var aa = ans.indexOf(_str);
                if (ans.indexOf(_str) >= 0)
                    tr += '<td class="td"><input id="Judge' + (i * 6 + j) + '" name="clickname" style = "background-color: #ff0000;" type="submit" ' + ' value="' + (i * 6 + j) + '" class="weida" title="Judge"  onclick="SaveAndThen(this);return false;" /></td>';
                else
                    tr += '<td class="td"><input id="Judge' + (i * 6 + j) + '" name="clickname"  type="submit" ' + ' value="' + (i * 6 + j) + '" title="Judge" class="weida" onclick="SaveAndThen(this);return false;" /></td>';
            }
            tr += '</tr>';
        }
        tr += '</table>';
        document.getElementById('DivProblem').insertAdjacentHTML("beforeEnd", tr);

      在这段代码中,我的按钮的都是动态生成的,那么以前要是每次生成的时候把他的id一起写到调用函数中去,特别的麻烦,现在onclick=“SaveAndThen(this)”中只需要传递参数this即可,所以这样问题就变得很简单了。所以在以后的编码中大家可以留心一下,this对象是一个很强大的东西,不妨多考虑一下他。

  • 相关阅读:
    001_jdk配置
    mysql(5.7)安装教程
    mysql(5.6)安装教程
    外网发布
    蓝桥 历届试题 分考场
    蓝桥 历届试题 合根植物
    Codeforces Round #650 (Div. 3) D : Task On The Board
    HDU 3336 Count the string
    leetcode [238. 除自身以外数组的乘积]
    leetcode [837. 新21点]
  • 原文地址:https://www.cnblogs.com/xiaopanlyu/p/2477884.html
Copyright © 2011-2022 走看看