jQuery ist Javascript. Es gibt auch eine Anzahl von Auswahlmaschinen, die als Alternativen verfügbar sind.
Wenn Sie es von Grund auf neu erstellen möchten, können Sie querySelectorAll verwenden und dann nach dem passenden Inhalt suchen (vorausgesetzt, der Inhaltsselektor ist nicht implementiert) und wenn das nicht verfügbar ist, implementieren Sie Ihre eigenen.
Das würde bedeuten, Elemente von Tag-Namen bekommen, das Filtern von der Klasse, dann für die internen Spannweiten mit passendem Inhalt suchen, so:
// Some helper functions
function hasClass(el, className) {
var re = new RegExp('(^|\\s)' + className + '(\\s|$)');
return re.test(el.className);
}
function toArray(o) {
var a = [];
for (var i=0, iLen=o.length; i<iLen; i++) {
a[i] = o[i];
}
return a;
}
// Main function
function getEls() {
var result = [], node, nodes;
// Collect spans inside A elements with class swchItem
// Test for qsA support
if (document.querySelectorAll) {
nodes = document.querySelectorAll('a.swchItem span');
// Otherwise...
} else {
var as = document.getElementsByTagName('a');
nodes = [];
for (var i=0, iLen=as.length; i<iLen; i++) {
a = as[i];
if (hasClass(a, 'swchItem')) {
nodes = nodes.concat(toArray(a.getElementsByTagName('span')));
}
}
}
// Filter spans on content
for (var j=0, jLen=nodes.length; j<jLen; j++) {
node = nodes[j];
if ((node.textContent || node.innerHTML).match('1')) {
result.push(node);
}
}
return result;
}
Die Pseudo-Klasse ': contains()' gehört nicht mehr zum CSS-Standard und wird daher von 'querySelectorAll()' nicht erkannt. Das heißt, Sie können tatsächlich auf den Quellcode verweisen, um zu sehen, wie jQuery/Sizzle ': contains()' mit JS implementiert. – BoltClock
Ich habe ein bisschen Zeit damit verbracht, durch jQuery zu waten, ich will nicht wirklich sehen, wie es '' contains' 'tut. Es sollte so gemacht werden, wie ich bin-Matching auf dem textContent oder innerText (was auch immer unterstützt wird), obwohl es seine eigene 'text' -Funktion verwenden kann (was unnötig und langsamer ist, aber ich weiß nicht, ob es das ist, was es tatsächlich tut). – RobG