html - 为什么原生javascript与jquery不能混用呢
PHPz
PHPz 2017-04-10 17:58:01
[JavaScript讨论组]

比分说:

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

但凡这样写都会报错

PHPz
PHPz

学习是最好的投资!

全部回复(8)
黄舟

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

PHP中文网

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

$(sp).addClass("someclass");
巴扎黑

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

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

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

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

大家讲道理

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

高洛峰

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

天蓬老师

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

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号