2016-03-18 13 views
-1
$('li').click(function() { 
    $(this).replaceWith('<form><input[type="text"]>cool stuff</input></form>'); 
}); 

Bu kodu kullandığımda, ortadaki metin görünür, ancak aradığım metin kutusu değil. Bunu nasıl düzeltirim?Neden bu değişim dönüşmüyor?

cevap

2

Birlikte li değiştirmekte olduğunuz HTML geçersiz da ondan: Sadece li elemanları doğrudan çocukları olabildiğince

$('li').click(function() { 
    $(this).replaceWith('<form><input type="text">cool stuff</form>'); 
}); 

Working example

Ayrıca form ile li değiştirilmesi geçersiz olduğuna dikkat Bir ol veya ul. Bunun yerine ona şimdiki li ardından append() yeni formempty() olabilir, ya da sadece bunu yapmak için html() kullanın: çalışır

$('li').click(function() { 
    $(this).html('<form><input type="text">cool stuff</form>'); 
}); 
+0

kuyu, ama şimdi alanına yazamaz. Herhangi bir sebep neden? – WillingLearner

+0

Emin değilim, keman iyi yazmamı sağlıyor. "Input", "form" veya "ul" için başka etkinlik işleyicileri var mı? –

+0

hayır başka bir şeyim yok – WillingLearner