appendTo()不是函数?

时间:2010-01-24 20:21:22

标签: jquery

我认为这段代码应该可行,但它没有,有人可以解释一下吗?

 $("#addLinkLayout input.comment, #addLinkLayout input.link").each(function() {
      $(this).val().appendTo('div#links');
 });

它说$(this).val().appendTo()不是函数。

5 个答案:

答案 0 :(得分:9)

appendTo只能应用于jQuery对象。但是val会返回一个字符串。

请改为尝试:

$("#addLinkLayout input.comment, #addLinkLayout input.link").each(function() {
    $('div#links').append($(this).val());
});

答案 1 :(得分:2)

val()不返回DOM元素。它从DOM元素返回value属性。因此,如果您有类似<input value="foo" />的内容,则在该节点上调用val()将为您提供字符串"foo"。由于javascript的字符串类没有方法appendTo,因此您收到错误。

你可能想要像

这样的东西
$('div#links').append($(this).val());

答案 2 :(得分:1)

val返回一个字符串,而不是jQuery对象,请尝试:

$('div#links').append($(this).val());

答案 3 :(得分:1)

$(this).val()不返回jQuery对象(它返回input元素的值)。所以它不能被束缚。

答案 4 :(得分:1)

您可以将其更改为

$("#addLinkLayout input.comment, #addLinkLayout input.link").each(function() {
  $('div#links').append($(this).val());
});