2010-01-24 36 views
8

我認爲這個代碼應該可以工作,但它沒有,有人可以解釋嗎?appendTo()不是函數嗎?

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

它說$(this).val().appendTo()不是一個函數。

回答

8

appendTo只能在jQuery的對象應用。但val返回一個字符串。

試試這個:

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

VAL返回一個字符串,而不是一個jQuery對象,嘗試:

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

$(本).VAL()不返回一個jQuery對象(它返回輸入元素的值)。所以它不能被鏈接。

1

你可以把它改成

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

val()不會返回一個DOM元素。它從DOM元素返回value屬性。所以如果你有類似<input value="foo" />的東西,在那個節點上調用val()會給你一個字符串"foo"。由於javascript的字符串類沒有方法appendTo,所以出現錯誤。

你可能要像

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