Ich bin ein bisschen verwirrt die letzten paar Tage. Ich benutze meine JQUERY-Selektoren wann immer ich möchte ... aber ich habe nicht überprüft, ob ein Selektor existiert oder nicht, stattdessen habe ich die .each-Funktion benutzt.Meine JQuery existieren Funktion: macht es Sinn oder nicht?
var exist = function(obj){
var returnObject ={};
for(var key in obj){
if(obj[key].length){
returnObject[key] = obj[key];
}else {
return false;
}
}
return returnObject;
}
//define all your selectors that would be needed for core functionality.
var activeSelectors = exist({
selList : $('div.selectorone'),
selTag : $('a#tagtwo'),
selFloat : $(div.float) /*etc etc*/
})
if (activeSelectors) {
console.log('all my core selectors are here!');
/* do Stuff*/
}
Ich weiß, das viel ein wenig aussieht, vor allem, wenn Sie nur einem Wähler brauchen, aber ich kann keine bessere Art und Weise (mit Ausnahme eines lame if-Anweisung in jedem Wähler) herauszufinden. Ich sah Menschen
mit$('div#mySelector').each(function(){ /* do stuff*/});
aber ich bin nicht einverstanden, dass es schön ist. Beachten Sie, dass #mySelector (weil es eine ID ist) nur einmal erlaubt ist.
Ich würde das Feedback lieben. Bitte beachten Sie die Leistung vs Nizza Programmierung.
für weitere Informationen, bitte kommentieren Sie unten oder kontaktieren Sie mich!
Nicht sicher, was Sie zu tun versuchen, aber '$ ('div.selectorone'). Length 'gibt 0 zurück, wenn es" leer "ist. So einfach' if' Aussage könnte sein, wonach Sie suchen. –
@Shadow Wizard danke für Ihre Antwort. Die if-Anweisung würde ebenfalls funktionieren, aber der Code stoppt, nachdem ein Selektor nicht vorhanden ist. Daher wird er früh im Code gestoppt. Und eine andere Sache ist if ($ ('sel'). Length) {$ ('sel'.css())} Ich rufe das DOM zweimal auf, ich könnte var verwenden, aber ich mag 3 Zeilen Code (Leistung vs. nett) – Mimo
warum sollte die if-aussage lahm sein? Die meisten jq-plugins basieren auf dem jeweiligen auf jeden Fall, so dass jeder von einem Selektor, der leer ist, sowieso nichts tut. Ich sehe keinen Sinn darin. – meo