首页 > 为什么原生javascript与jquery不能混用呢

为什么原生javascript与jquery不能混用呢

比分说:

     var val = $(this).val()
    var sp = document.createElement('span')
    sp.addClass('tagSpan').text(val)
    $('#tagContainer').appendChild(sp)

但凡这样写都会报错


jquery的所有方法都在jquery对象上,当然不能被dom对象调用


都不在一个作用域内 原生的js对象怎么可能直接调用jQuery的对象方法?


原生的元素对象没有jquery对象的那些方法你怎么用?包装一下就行了,比如

$(sp).addClass("someclass");

你可以这样想 jq获取dom是通过 $()方法,这是jq封装好了的。但是你通过 creatElement的方法获取的dom元素,明显跟$()获取到了的dom元素不是同一个,jq里面提供的方法是给 $()对象提供的,而原始的JavaScript获取的元素里面是没有哪些方法的,所以报错。


jquery对象和dom对象不是一个东西,当然不能混用。可以使用$(dom)将dom对象转换为jquery对象


因为对象的类型不同,所支持的方法也不同。


楼上说的对,这里补个相互转换的例子,摘自锋利的jq

var $cr=$("#cr");//jq对象
var cr=$cr.get(0);//dom对象

var cr=documnet.getElementById("cr");//dom对象
var $cr=$(cr);jq对象

sp是dom元素,addClass是jQuery对象才有的方法,你用dom元素去掉用jQuery方法当然报错。共用是可以的,但是不知道为什么共用。

【热门文章】
【热门文章】