How to remove only tag using jQuery?

前端 未结 5 1731
心在旅途
心在旅途 2021-02-06 00:23

I want to remove the span using jQuery, I have tried the .unwrap(); but it\'s not working.


                      
相关标签:
5条回答
  • 2021-02-06 00:37
    $("span").each(function() {
        var content = $(this).text();
        $(this).remove();
        $("a").html(content);
    });
    
    0 讨论(0)
  • 2021-02-06 00:39
    $('li').find('span').remove();
    

    or

    $('li').find('span').detach();
    

    If you want to remove the wrapping only, try

    var buffer = $('li').find('span').text();
    $('li').find('span').parent().html(buffer);
    
    0 讨论(0)
  • 2021-02-06 00:43

    Obviously, unwrap doesn't work as the spans only have text nodes inside them and jquery doesn't handle text nodes too well... this works however (you could use also jQuery.text instead of jQuery.html if you're sure that the span only contains text):

    $('li a span').replaceWith($('li a span').html());
    

    Working example

    Edit: Actually, it seems that unwrap works as well if you use jQuery.contents to work around the jquery's inability to directly select text nodes:

    $('li a span').contents().unwrap();
    
    0 讨论(0)
  • 2021-02-06 00:50
    .remove() 
    

    http://api.jquery.com/remove/

    :)

    0 讨论(0)
  • 2021-02-06 00:51

    Unwrap should work. It's possible you're not successfully selecting the span which you wish to unwrap. You can try the following code which should select that span successfully:

    $("li a span").unwrap()
    

    It's a bit unclear from your question what exactly you're trying to do. It's also unclear whether you're having trouble with the selectors or with the jquery api. To get a better handle on jquery's selectors I recommend you install firebug and firequery, as it can really help you understand what you're selecting.

    0 讨论(0)
提交回复
热议问题