Извлеките текст в элементе с JQuery

Из витой вики

from twisted.web import proxy, http
from twisted.internet import reactor
from twisted.python import log
import sys
log.startLogging(sys.stdout)

class ProxyFactory(http.HTTPFactory):
    protocol = proxy.Proxy

reactor.listenTCP(8080, ProxyFactory())
reactor.run()

9
задан Fu86 19 June 2009 в 10:33
поделиться

4 ответа

Попробуйте это ...

<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
    $("#bla span").contents().each(function(i) {
        if(this.nodeName == "#text") alert(this.textContent);
    });
});

//]]>
</script>

При этом не нужно удалять какие-либо другие узлы из контекста, и вам будут просто выдавать текстовые узлы на каждой итерации.

7
ответ дан 4 December 2019 в 13:04
поделиться

Это работает (проверено):

    var clone = $("#bla > span").clone();
    clone.find('strong').remove();
    alert(clone.text());
5
ответ дан 4 December 2019 в 13:04
поделиться

Вариант метода karim79:

$("span").clone().find("strong").remove().end().text();

или если вам просто нужен корневой текст, не зная, какие еще теги в нем:

$("span").clone().children().remove().end().text();

все еще немного длинный, но я думаю, что это настолько короткое, насколько вы можете надеяться.

4
ответ дан 4 December 2019 в 13:04
поделиться
var textFromSpanWithoutStrongTag = $('div#bla > span').text();

ОБНОВЛЕНО:

var textFromSpanWithoutTextFromStrongTag =
    $('div#bla > span').text().replace($('div#bla > span > strong').text(), '');

ОБНОВЛЕНО:

var text = '';
$("div#bla > span").contents().each(function () {
    if(this.nodeType == 3) text = text + this.nodeValue; });

Проверено в FF3, IE8, O10b на:

<div id="bla">
    <span>
        <strong>bla bla bla</strong>
        I want this
        <strong>bla bla</strong>
        text
        <span>bla bla bla</span>
    </span>
</div>
0
ответ дан 4 December 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: