Подтвердить что ты не робот

Jquery - получить текст для элемента без текста детей

например, у нас есть этот файл

<div id="mydiv">
    some text here 
    <div id="inner div">
         text for inner div
    </div>
</div>

Мне нужно получить текст #mydiv только с некоторым кодом, подобным этому:

alert($('#mydiv').text());  // will alert "some text here"
4b9b3361

Ответ 1

эй попробуй это пожалуйста ": http://jsfiddle.net/MtVxx/2/

Хорошая ссылка для вашего конкретного случая здесь: http://viralpatel.net/blogs/jquery-get-text-element-without-child-element/ (будет получен только текст элемента)

Надеюсь, что это поможет, :)

код

jQuery.fn.justtext = function() {

    return $(this).clone()
            .children()
            .remove()
            .end()
            .text();

};

alert($('#mydiv').justtext());​

Ответ 2

В настоящее время принятый ответ довольно ужасен с точки зрения производительности, поэтому я чувствовал себя обязанным написать более легкий:

$.fn.mytext = function() {
    var str = '';

    this.contents().each(function() {
        if (this.nodeType == 3) {
            str += this.textContent || this.innerText || '';
        }
    });

    return str;
};

console.log($('#mydiv').mytext());​