比分说:
var val = $(this).val()
var sp = document.createElement('span')
sp.addClass('tagSpan').text(val)
$('#tagContainer').appendChild(sp)
但凡这样写都会报错
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
因为对象的类型不同,所支持的方法也不同。
原生的元素对象没有jquery对象的那些方法你怎么用?包装一下就行了,比如
楼上说的对,这里补个相互转换的例子,摘自锋利的jq
jquery的所有方法都在jquery对象上,当然不能被dom对象调用
sp是dom元素,addClass是jQuery对象才有的方法,你用dom元素去掉用jQuery方法当然报错。共用是可以的,但是不知道为什么共用。
都不在一个作用域内 原生的js对象怎么可能直接调用jQuery的对象方法?
你可以这样想 jq获取dom是通过 $()方法,这是jq封装好了的。但是你通过 creatElement的方法获取的dom元素,明显跟$()获取到了的dom元素不是同一个,jq里面提供的方法是给 $()对象提供的,而原始的JavaScript获取的元素里面是没有哪些方法的,所以报错。
jquery对象和dom对象不是一个东西,当然不能混用。可以使用$(dom)将dom对象转换为jquery对象