从div的子元素中选择所有内容

时间:2014-07-03 13:45:59

标签: jquery

如果我有div这样的元素:

<div id="someContents">
    <p>Foo has the following properties</p>
    <ul>
        <li>Bar</li>
    </ul>
    <p>And some other stuff</p>
</div>

并声明:

var $someContents = $('#someContents');

然后我想声明一个现在的var,它将是一个String,并且会在屏幕上看到包含换行符等的内容。

http://jsfiddle.net/7a5b9/

我尝试了各种JQuery方法......任何建议都值得赞赏。

3 个答案:

答案 0 :(得分:2)

试试这个:

var now = $(someContents).find('*').text();

答案 1 :(得分:1)

var $someContents = $('#someContents').html();
alert($someContents);

这会获得所有HTML内容和收益:

enter image description here

http://jsfiddle.net/dFB3J/


var $someContents = $('#someContents').text();
alert($someContents);

这将获得所有内部文本内容和产量:

enter image description here

http://jsfiddle.net/z2f26/


(function($){
   $.fn.innerText = function(msg) {
         if (msg) {
            if (document.body.innerText) {
               for (var i in this) {
                  this[i].innerText = msg;
               }
            } else {
               for (var i in this) {
                  this[i].innerHTML.replace(/&amp;lt;br&amp;gt;/gi,"n").replace(/(&amp;lt;([^&amp;gt;]+)&amp;gt;)/gi, "");
               }
            }
            return this;
         } else {
            if (document.body.innerText) {
               return this[0].innerText;
            } else {
               return this[0].innerHTML.replace(/&amp;lt;br&amp;gt;/gi,"n").replace(/(&amp;lt;([^&amp;gt;]+)&amp;gt;)/gi, "");
            }
         }
   };
})(jQuery);

var $someContents = $('#someContents').innerText();
alert($someContents);

这会获取所有内部文字内容(保留换行符)和收益率:

enter image description here

http://jsfiddle.net/4gpLE/

来源:http://www.sitepoint.com/jquery-text-function/

答案 2 :(得分:0)

这个问题已经回答here

一种简单的方法是创建html的临时克隆,将其放在另一个标记中并获取texthtml内容。

$('<div>').append($('#xxx').clone()).html();