Создать тег span и вставить с помощью JQuery

Я пытаюсь заполнить тег span, который должен был вставить на мою страницу с помощью jquery.

Я попробовал это

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

что дало этот результат.

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

то я попробовал это

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

что дало это

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

то, что я пытаюсь получить, ниже

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

Ответы

Ответ 1

HTML объекта не является атрибутом и должен быть предоставлен отдельно:

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

Кроме того, className не является допустимым атрибутом, вы имеете в виду class вместо этого, если это так использовать:

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

Ответ 2

Я предпочитаю метод createElement собственного JS. Это быстрее, чем только метод jQuery

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

Ответ 3

Попробуйте:

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

A jsFiddle

Ответ 4

Я не рекомендую использовать настраиваемые атрибуты, такие как className, я считаю, что стандартная практика - префикс любых необходимых пользовательских атрибутов с помощью data-. При этом вы можете использовать метод jquery $.append() для достижения своей цели.

Вот пример:

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

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

Ссылка на документацию jQuery на append:

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

Ответ 5

попытайтесь добавить html в конец

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

Предлагается Рори Маккроссан

если вы используете className как свой собственный атрибут, чем изменяете его, придумывание собственных атрибутов сделает страницу недействительной и приведет к другим проблемам. Если вам нужно создать свой собственный атрибут, используйте data-*

но если он является классом, чем изменить его на class

Ответ 6

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

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

DEMO

Ответ 7

Вы также можете создать строку HTML и привязать ее к целевому элементу:

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

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