javascript - 添加到变量属性的字符串的类型是什么?
问题描述
问题
我想修复这个错误Uncaught TypeError: ('<li>' + $input.val() + '</li>').appendTo(ourList) is not a function
。
我玩了很多,我什至不记得我是如何在括号内的字符串(?)$
前面添加的。它有效,但我不知道为什么......
我的研究
根据我对MDN的理解,我的代码中出现了该错误,因为在错误的对象上调用了该函数。
然后API Docs说这个函数可以在其中任何一个上调用
Selector | htmlString | Element | Array | jQuery object
因此,当我在 jQ 对象上调用 .appenTo 方法时,我修复了该错误
$('<li>' + $input.val() + '</li>').appendTo(ourList); // jQuery object
但是我在调用 htmlString 上的 .appenTo 方法时遇到了这个错误,虽然这应该没问题......我的意思是,这段代码('<li>' + $input.val() + '</li>')
是一个字符串,不是吗?
('<li>' + $input.val() + '</li>').appendTo(ourList); // htmlString???
我的问题
('<li>' + $input.val() + '</li>')
导致错误的这段代码是怎么回事?是不是字符串?
解决方案
然后 API Docs 说这个函数可以在任何一个 Selector | 上调用。html字符串 | 元素 | 数组 | jQuery 对象
不,它说target
参数采用这些类型,所以你可以这样做:
jQObject
.appendTo("#test") // selector
.appendTo("<div></div>") // html string
.appendTo(document.body) // element
.appendTo([document.body]) // array
.appendTo($()) // jQObject
但它只能在 jquery 对象上调用,而不能在纯字符串上调用。
推荐阅读
- angularjs - Angular - 需要输入字段
- apache-spark - 如何自动化 Spark 读取?
- javascript - 我可以使用表达式作为对象属性的值吗?
- xamarin.forms - 动态更新的 Xamarin.Forms ContentPage 内容不响应 iOS 平台的用户操作
- python - 来自 numba 的 jit 和来自 scipy 的 hypergeom 的断言错误
- python - pd.merge 给出错误:DataFrame' 对象是可变的,因此它们不能被散列
- java - Spring Boot - Jwts.builder 无法解析方法'signWith()'
- json - 按字母顺序对 JSON 对象数组以及 dart 中属性的布尔值进行排序
- javascript - 在特定索引后随机播放数组
- sql - 循环数组游标不循环多次 - SQL SERVER