首页 > 解决方案 > 添加到变量属性的字符串的类型是什么?

问题描述

问题

我想修复这个错误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>')导致错误的这段代码是怎么回事?是不是字符串?

标签: javascriptjqueryappendtypeerror

解决方案


然后 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 对象上调用,而不能在纯字符串上调用。


推荐阅读