Из витой вики
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()
Попробуйте это ...
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){
$("#bla span").contents().each(function(i) {
if(this.nodeName == "#text") alert(this.textContent);
});
});
//]]>
</script>
При этом не нужно удалять какие-либо другие узлы из контекста, и вам будут просто выдавать текстовые узлы на каждой итерации.
Это работает (проверено):
var clone = $("#bla > span").clone();
clone.find('strong').remove();
alert(clone.text());
Вариант метода karim79:
$("span").clone().find("strong").remove().end().text();
или если вам просто нужен корневой текст, не зная, какие еще теги в нем:
$("span").clone().children().remove().end().text();
все еще немного длинный, но я думаю, что это настолько короткое, насколько вы можете надеяться.
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>