You only have a small error instead of using text
usa html
.
text
is only for text and html
is rendered as an element of DOM
$(document).on('click', '#Crear', function() {
var boton = $('<button/>', {
'type' : 'button',
'class' : 'editar edit-modal btn btn-warning',
'id' : 'ButtonEditar',
'html' : '<span class="fa fa-edit"></span><span class="hidden-xs"> Editar</span>'
});
$( '#contenedor').append(boton.prop('outerHTML'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<button type="button" id="Crear" class="btn btn-primary">
<span class="fa fa-plus"></span>
<span class="hidden-xs"> Agregar</span>
</button>
<div id="contenedor">
</div>
Taking into account the proposal of @ User2930137 just a small modification but it is exactly the same, maybe if a little more complex
The modification consists in only doing a single .append()
in the following way:
.append(
$('<span />', {
'class': 'fa fa-edit'
})
,
$('<span />', {
'class': 'hidden-xs',
'text': 'Editar'
})
);
What is really being done here is to create two elements and when concatenating with .append()
are separated by ,
.
This avoids doing 2 .append()
of two elements $('#contenedor').append(boton.append(span).append(span2));
as it does @ User2930137 .
Final result
$(document).on('click', '#Crear', function() {
var boton = $('<button/>', {
'type': 'button',
'class': 'editar edit-modal btn btn-warning',
'id': 'ButtonEditar'
}).append(
$('<span />', {
'class': 'fa fa-edit'
}),
$('<span />', {
'class': 'hidden-xs',
'text': 'Editar'
})
);
$('#contenedor').append(boton);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<button type="button" id="Crear" class="btn btn-primary">
<span class="fa fa-plus"></span>
<span class="hidden-xs"> Agregar</span>
</button>
<div id="contenedor">
</div>