In jQuery, are there any function that similar to html() or text() but return the whole content of matched component?

前端 未结 4 1231
南旧
南旧 2020-12-30 09:43

For example, if the match is

Hello world
, I need to return

Hello world
相关标签:
4条回答
  • 2020-12-30 10:27

    There's no built-in function for getting the outerHTML, but you can use this:

    jQuery.fn.outerHTML = function(s) {
    return (s)
      ? this.before(s).remove()
      : jQuery("<p>").append(this.eq(0).clone()).html();
    } 
    

    Then in your selector:
    $('.class1').outerHTML() will give you what you are looking for.

    Source of function

    0 讨论(0)
  • 2020-12-30 10:30

    Check out this outerHTML plugin.

    0 讨论(0)
  • 2020-12-30 10:31

    @Jose Basilio's answer is great. But Brian Grinstead found a problem in this function when using IFrames: http://www.briangrinstead.com/blog/jquery-outerhtml-snippet

    Here I put together Jose's way for also setting the outerHTML with Brian's solution for IFrames:

    jQuery.fn.outerHTML = function(s) {
        if (s) {
            return this.before(s).remove();
        } else {
            var doc = this[0] ? this[0].ownerDocument : document;
            return jQuery('<div>', doc).append(this.eq(0).clone()).html();
        }
    }
    
    0 讨论(0)
  • 2020-12-30 10:42

    I used .andSelf() with success:

    http://api.jquery.com/andSelf/

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