2014-07-24 36 views
2

表明,它获得元素相同的内容我试图让内部元素的内容,我想这是一样的,当在浏览器中显示如何当浏览器

<pre class="yyy">Hello this is <span style="display: none;"> test </span> text </pre> 

// how to alert (get) content like when it shown on browser: Hello this is text 
alert($(".yyy").html()); 

我想要提醒的结果是:Hello this is text与浏览器上显示的一样。那可能吗?如何做到这一点,谢谢。

这里是我的code

回答

2

我觉得this是你在找什么。

jQuery.fn.visibleText = function() { 
    return $.map(this.contents(), function(el) { 
    if (el.nodeType === 3) { 
     return $(el).text(); 
    } 
    if ($(el).is(':visible')) { 
     return $(el).visibleText(); 
    } 
    }).join(''); 
}; 

alert($(".yyy").visibleText()); 

Here是小提琴。

4

我这样做:

alert($(".yyy").clone().find(':not(:visible)').remove().end().text()); 

Demonstration

+0

这在这个例子中有效,但在我的实际应用程序中效果不好。 – DeLe