2010-01-24 49 views
8

Bu kodun çalışması gerektiğini düşündüm ama olmadı, biri açıklayabilir mi?appendTo() bir işlev değil mi?

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

$(this).val().appendTo() bir işlev değil diyor.

cevap

8

appendTo Böyle bir şey ancak jQuery nesneler üzerinde uygulanabilir istiyorum. Ancak val bir dize döndürür.

yerine bu deneyin:

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

val bir dize değil, bir jQuery nesnesi döndürür, deneyin:

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

$ (this) .val() (o giriş öğesinin değerini verir) bir jQuery nesnesi döndürmez. Yani zincirlenemez.

1

Bir DOM öğesi dönmez

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

val() olarak değiştirebilirsiniz. Bir DOM öğesinden value özniteliğini döndürür. Yani, <input value="foo" /> gibi bir şeyiniz varsa, bu düğümdeki val() öğesinin çağrılması size "foo" dizesini verecektir. Javascript'in string sınıfının appendTo bir yöntemi olmadığı için bir hata alıyorsunuz.

Muhtemelen

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