¿Eliminar un elemento de html ()?

¿Cómo puedo eliminar cierto elemento dentro de html ()?

Por ejemplo, tengo estos enlaces html,

<ul>
    <li><a href="#" class="string-comment">Comment</a></li>
    <li><a href="#" class="string-delete-needle">Delete</a></li>
    <li><a href="#" class="string-publish-needle">Publish</a></li>
</ul>

Cuando haces clic en la clase de string-publish-needle, Almacenaré el html en una variable,

var html_parents = object_parents.html();

<li><a href="#" class="string-comment">Comment</a></li>
<li><a href="#" class="string-delete-needle">Delete</a></li>
<li><a href="#" class="string-publish-needle">Publish</a></li>

y quiero eliminar este que es el parent of string-publish-needle,

<li><a href="#" class="string-publish-needle">Publish</a></li>

para que pueda tener un nuevo contenido html solo a continuación,

<li><a href="#" class="string-comment">Comment</a></li>
<li><a href="#" class="string-delete-needle">Delete</a></li>

¡Mi código, pero no funciona, por supuesto!

$('.string-publish-needle').click(function(e){

    var object = $(this);
    var object_path = object.attr('href');
    var object_parent = object.parent('li');
    var object_parents = object.parents('ul');
    var html_parents = object_parents.html();
    var html_remain = object_parents.html().remove(object_parent);

    alert(html_remain);

});

preguntado el 27 de agosto de 11 a las 16:08

¿Qué estás haciendo con el HTML? ¿Por qué no puede trabajar con elementos DOM? -

echa un vistazo a la página aquí - lauthiamkok.net/dump/jquery.plugin.reload.self cuando haces clic en eliminar todo el <ul> será reemplazado. cuando haces clic no button, se devolverá el html anterior. por eso necesito ese html. -

4 Respuestas

$('.string-publish-needle').click(function(e){
    var copy = $($('<ul/>').append($(this).parents('ul').html()));
    copy.find('.string-publish-needle').parent('li').remove();
    alert(copy.html());
});

Respondido 27 ago 11, 20:08

pensé en eso también. pero también necesito mantener ese elemento. uno está con ese elemento, otro está sin ese elemento. - laukok

Oh, ya veo. He modificado (no probado), pero algo similar debería funcionar. - Keith

+1, también puedes hacer: var copy = $(this).closest('ul').clone(). - Felix Kling

$(".string-publish-needle").click(function () {
          $(this).remove();
        });

¿Esto ayuda?

Respondido 27 ago 11, 20:08

Eso es lo que pensé que quería OP. - Trefex

Pensé en eso. pero también necesito mantener ese elemento. uno está con ese elemento, otro está sin ese elemento. - laukok

$('.string-publish-needle').click(function(e){

    var object = $(this);
    var object_path = object.attr('href');
    var object_parent = object.parent('li');
    var object_parents = object.parents('ul');
    var html_parents = object_parents.html();
    object_parent.remove();
    var html_remain = object_parents.html();

    alert(html_remain);

});

Respondido 27 ago 11, 20:08

No se si entendí bien ... pero tu puedes hacer

$('.string-publish-needle').click(function(e) {

    var x = $(this).detach();

});

separar la función jQuery

Respondido 27 ago 11, 22:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.