id="#alvin"
ist nicht gültig Syntax, '#' wird als Teil eines Wählers für jQuery oder in CSS verwendet.
Für dieses sehr begrenzte Beispiel, ersetzen "Apple" durch "Orange" Ich würde eigentlich einfach lesen innerHTML
und neu schreiben. Ich benutze nicht einmal jQuery dafür.
window.onload = function() {
var alvin = document.getElementById('alvin')
alvin.innerHTML = alvin.innerHTML.replace('apple', 'orange');
}
habe ich keine jQuery, weil jQuery Streutextknoten wählen nicht eine saubere Art und Weise müssen. Was passiert also, wenn wir alle untergeordneten Textknoten in Spannen einschließen? Wir könnten dies tun:
$('#alvin').contents().filter(function() {
return this.nodeType == 3;
}).wrap('<span></span>').end();
Auf diese Weise sind wir mit der Struktur links:
<a id="alvin" href="http://www.camille.com"><ins class="xxx">Anna</ins><span>apple</span></a>
Dann können wir den +
benachbarten Selektor verwenden, um es zu bekommen, wie diese - ins+span
bedeutet ein <span>
nach einem <ins>
:
var elem = $('#alvin ins+span');
elem.text(elem.text().replace('apple', 'orange'));
+1, du schlägst mich dazu, obwohl ich immer noch meine Lösung gepostet habe, weil sie sich leicht unterscheidet :-) –
@Andy - Danke für das +. Ja, meins funktioniert mit der Annahme einer spezifischen Positionierung. Je nach den spezifischen Anforderungen von OP wird es sich um einen Toss handeln. – user113716
Danke! Ich wusste, dass es getan werden könnte. Ich wünschte, ich könnte mehrere Lösungen wie E * -E * .com (auch für Andy) vergeben. –