原生JavaScript替代jQuery的Dom操作简单实例

/ 30评 / 5

jQuery的Dom操作十分简单,在开发iDevs主题的时候,其中“菜单”和“搜索”部分使用到了一些很基本的Dom操作,图方便,我使用了jQuery,闲来无事,尝试着使用原生的js完成这一操作,发现其代码量一样,且原生js效率更高,啰嗦多了,先贴代码。

HTML结构如下:

<input type="button" id="Test" class="menu_click" value="按钮" />

jQuery的Dom实例:

jQuery_btn_click("Test", "menu_click", "menu_close", true);
function jQuery_btn_click(btn, on, off, flag) {
    $('#' + menu).click(function () {
        $('#' + menu).prop('class', (flag = !flag) ? on : off);
    });
}

为了方便,我封装了函数并传了几个有趣的参数,代码量很少,具体传的什么一看便知。

原生Javascript实例:

cover_click("Test", "menu_click", "menu_close", true);
function cover_click(btn, on, off, flag) {
    (btn = document.getElementById(btn)).onclick = function () {
        btn.setAttribute("class", (flag = !flag) ? on : off);
    }
}

就是这样子,原生的方法操作起来与jQuery的代码量几乎一致。

兼容性

兼容性方面,jQuery视版本而定,2.0版本之后已经不再支持IE8-,原生的,我本地测试是支持IE7+,欢迎大家测试一下。

上面只是一个实例,在此记录一下,修修改改还可以完成其他的一些简单的Dom操作,如果有更方便且简单的方法欢迎指出。

  1. themebetter说道:

    终于搞定新主题tob的上线,过来看看博主。

  2. 精选故事网说道:

    js还在学,有一些标签还没学到。。。

  3. 博主主题很漂亮。

  4. 昌浩说道:

    越来越好看了嘛2333

  5. c说道:

    好漂亮的主题!!死啃JS中……

    • c说道:

      @c 说来那个到底应该写成
      flag != flag
      还是
      flag =! flag
      我习惯用前者

      • Tokin说道:

        @c

        不不不,没写错,flag = !flag,flag是bool,我想每运行一次就改变一次值,是true的时候,就变成false,是false的时候让他变成true,对应的是打开、关闭,如果按照你这么写,会永真或者永假。。。

  6. chasonma说道:

    很久没来了,你又换版了,页面上的一些小动画确实不错

  7. 唯美图片说道:

    换了iDevs那主题后,音乐不能自动播放,可能与JS有关。(可以看看我站点的 /about页面)

  8. 锁匠说道:

    主题非常漂亮,厉害厉害

  9. Page说道:

    有多少人是用手机看博客的?

  10. 大雄说道:

    手机版上你的css没弄好吧,代码全部都被弄成防止溢出了,全部米有换行。

发表评论

邮箱地址不会被公开。 必填项已用*标注