2013-08-12 20 views
14

Próbuję wypełnić znacznik zakresu, który miałem wstawić do mojej strony z jquery.Utwórz znacznik zakresu i wstaw z Jquery

Próbowałem to

var span = $('<span />').attr({'className':'folder_name' , 'text':'favre' }); 
var insert= 
$('<div/>', { 
    className: "folder", 
    html: span 
}); 

co dało ten wynik.

<div classname="folder"> 
<span classname="folder_name" text="favre"></span> 
</div> 

Potem próbowałem to

var span = $('<span />').attr({'className':'folder_name', 'html':'Elway' }); 

co dało to

<div classname="folder"> 
<span classname="folder_name" html="Elway"></span> 
</div> 

co próbuję dostać się poniżej

<div classname="folder"> 
<span classname="folder_name" >**Elway**</span> 
</div> 

Odpowiedz

22

HTML obiektu nie jest atrybutem i musi być dostarczany oddzielnie:

var span = $('<span />').attr('className', 'folder_name').html('Elway'); 

Również className nie jest ważny atrybut, to znaczy class zamiast, jeśli tak to wykorzystać:

var span = $('<span />').addClass('folder_name').html('Elway'); 
+1

niesamowite dobry chwyt na classnname który był kolejny błąd –

2

spróbować dołączyć html na końcu

var span = $('<span />').attr({'className': 'folder_name').html('html here'); 

sugerowane przez Rory McCrossan

Jeśli używasz className jako swojej własnej cechy niż go zmieniasz, wymyślenie własnych atrybutów spowoduje, że strona będzie nieważna i doprowadzi do innych problemów. Jeśli trzeba utworzyć użyć własnego atrybut data-*

ale jeśli jest to klasa niż go zmienić na class

+0

'jeśli ciebie używają className jako własnego atrybutu, niż jest to w porządku "nie, nie jest, wymyślanie własnych atrybutów powoduje, że strona jest nieważna i prowadzi do innych problemów. Jeśli potrzebujesz stworzyć własny atrybut, użyj 'data- *' –

+0

dodała Twoją sugestię w odpowiedzi :) –

9

Wolę „createElement” metodę rodzimej JS. Jest to szybciej niż metoda jQuery sam

var $span = $(document.createElement('span')); 
$span.addClass('folder_name').html('Elway'); 
5

Spróbuj z:

var span = $('<span />').attr('class', 'folder_name').html('Elway'); 

jsFiddle

2
var span = $('<span />',{ 
    className:'folder_name' , 
    html:'Elway' 
}); 

var insert = $('<div/>', { 
    className: "folder", 
    html: span 
}); 

DEMO

1

Można również utworzyć ciąg HTML i dołączyć go do element docelowy:

var html = '<div class="folder">' + 
       '<span class="folder_name">Text</span>' + 
      '</div>'; 

$('body').append(html); 
4

Nie polecam użyciu niestandardowych atrybutów jak className, uważam, że to standardowa praktyka poprzedzający każdy potrzebne atrybuty niestandardowe z data-. Biorąc to pod uwagę, możesz użyć metody jquery $.append(), aby osiągnąć swój cel.

Oto prosty przykład:

var div = $('<div />', { 'className':'folder' }) 
.append('<span className="folder-name">Elway</span>'); 

$('body').html(div); 

Link do dokumentacji jQuery na dołączać:

http://api.jquery.com/append/

Powiązane problemy