添加到变量属性的字符串的类型是什么?

时间:2018-07-31 07:29:45

标签: javascript jquery append typeerror

问题

我想修复此错误Uncaught TypeError: ('<li>' + $input.val() + '</li>').appendTo(ourList) is not a function

我已经玩了很多次,甚至不记得如何最终在括号内的 string (?)前面添加$。它有效,但我不知道为什么...


我的REASEARCH

根据我对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>')到底是什么?是不是字符串?

1 个答案:

答案 0 :(得分:0)

  

然后,API文档说可以在任何选择器上调用此函数。 htmlString |元素|数组| jQuery对象

不是,它表示target参数采用了这些类型,因此您可以执行以下操作:

jQObject
   .appendTo("#test") // selector
   .appendTo("<div></div>") // html string
   .appendTo(document.body) // element
   .appendTo([document.body]) // array
   .appendTo($()) // jQObject

但是只能在jquery对象上调用,不能在纯字符串上调用。