Jquery函数在纯javascript中等效

Yuk*_*élé 5 javascript jquery

我正在寻找一个包含所有jQuery函数的文档,以及它们在API本身由浏览器提供的等价物.

有时我只需要一个特定的jQuery函数(.detach(),.insertAfter(),.on(),...)我加载jQuery的只有这一点.

我想停止我的jQuery依赖,并且jQuery到非库翻译器会帮助我很多(我认为很多人).

网络上有什么类似的东西吗?

编辑:

我找到了:http://youmightnotneedjquery.com/

Lou*_*cci 6

在获取jQuery对象$(SELECTOR)之后,只调用那些jQuery函数.如果你说你不需要jQuery选择器代码而只是想要(或许)一个HTML DOM元素的函数,你必须从jQuery源代码中删除它(http://code.jquery.com/jquery- latest.js),具有依赖性,只有大小和复杂性,这可能是一个痛苦的过程.

JS等价物:

.detach - .removeChild

var par = elm.parentNode;
par.removeChild(elm);
Run Code Online (Sandbox Code Playgroud)

.insertAfter - .insertBefore 如何在不使用库的情况下在JavaScript中插入After()?

function insertAfter(referenceNode, newNode) {
    referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
Run Code Online (Sandbox Code Playgroud)

.on - addEventListener/attachEvent

if(elm.addEventListener)
    elm.addEventListener(EVENT_NAME, function() {}, false);
else
    elm.attachEvent('on' + EVENT_NAME, function() {});
Run Code Online (Sandbox Code Playgroud)

现在,如果要绑定事件,以便处理程序具有对特定对象的THIS引用...

function bind( scope, fn ) {
    return function () {
        fn.apply( scope, arguments );
    };
}
if(elm.addEventListener)
    elm.addEventListener(EVENT_NAME, bind(SCOPE_OBJECT, function(){}), false);
else
    elm.attachEvent('on' + EVENT_NAME, bind(SCOPE_OBJECT, function(){}));
Run Code Online (Sandbox Code Playgroud)


bed*_*der 1

也许您正在寻找 jQuery 源代码?

http://docs.jquery.com/Source_Code

  • 当您完成此操作后,您实际上就重新创建了 jQuery。这值得付出努力吗? (3认同)