3 Stimmen

JQuery "enthält" gibt nichts für html-Kodierung

var foundin = $('*:contains("the")').last();

funktioniert auf einer Seite, aber

var foundin = $('*:contains("&copy")').last();

gibt nichts zurück, auch wenn '&copy' im Seitenquelltext vorkommt. Ich habe versucht, das '&' zu entwerten, aber auch das funktioniert nicht. Gibt es eine Möglichkeit, contains zu verwenden, um ein html-kodiertes Zeichen in einer Seite zu finden?

Im Grunde genommen möchte ich das Element "©" finden und es analysieren, um den Urheberrechtsinhaber zu ermitteln. Ich habe eine ähnliche Frage gestellt, die auf dieses Ziel mit regex hier: HTML-Textelement mit Regex auswählen?

1voto

pimvdb Punkte 146174

Das Wichtigste in Kürze:

var $div = $("<div>");

$.expr[":"].containsEnc = function(a, b, c, d) {
    var decoded = $div.html(c[3]).text(); // decode &copy to ©

    return ~a.textContent.indexOf(decoded); // does the element contain the character
};

Dann können Sie containsEnc als Selektor:

$('body:containsEnc("&copy")').html('ok');

Allerdings ist sie nicht unbedingt die sicherste und leistungsfähigste.

http://jsfiddle.net/wfLur/1/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X