Sie können nicht Wählen Sie einen solchen Text mit jQuery. Hier ist eine sehr einfache Möglichkeit, die does not even need jQuery zu tun.
Der Nachteil dieses Ansatzes besteht darin, dass der gesamte Inhalt des Containers neu geschrieben wird. Wenn Sie also ein Ereignis an einige untergeordnete Elemente des Containers anhängen möchten, müssen Sie dies nach dem Einfügen der Spannen tun. Daher würde ich empfehlen, einen Behälter so klein wie möglich zu wählen.
var toReplace = '(Schlüsselwort)'; var containers = document.getElementsByClassName ("pi-accordion-title"); Array.prototype.forEach.call (Container, Funktion (Container)) { container.innerHTML = container.innerHTML.replace (toReplace, '$ &'); });
.pi-accordion-title a span {
color:red;
}
<h5 class="pi-accordion-title">
<a href="#" class="z">
<span class="pi-accordion-toggle"></span>
My Link (Keyword)
</a>
</h5>
EDIT
Wenn Sie die oben genannten Element überschreiben Nachteil vermeiden möchten, können Sie die ":contains"
jQuery-Selektor nutzen. Wenn Sie jQuery
verwenden, denke ich, dass es die beste/sicherste Methode ist, da Sie nur die übergeordneten Elemente neu schreiben.
var toReplace = '(Keyword)';
$(":contains(" + toReplace + ")").each(function(){
this.innerHTML = this.innerHTML.replace(toReplace, '<span>$&</span>');
});
.pi-accordion-title a span {
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h5 class="pi-accordion-title">
<a href="#" class="z">
<span class="pi-accordion-toggle"></span>
My Link (Keyword)
</a>
</h5>
Warum steckst du es nicht in eine Spanne? – progrAmmar
Mit Ihrem Code müssen Sie die innereHTML des Ankers aktualisieren 'a' – progrAmmar
@progrAmmar Ich möchte nicht HTML-Code in meiner Datenbank hinzufügen. Mein Link wird dynamisch aus der Datenbank gezogen. Und ich habe verschiedene Wörter in (Keyword), also werde ich eine Spanne mit verschiedenen Klassen setzen, abhängig vom Wort. – user2417624