Ergebnis 1 bis 6 von 6
Thema: Komisches Verhalten
-
14-10-2010, 23:05 #1
Komisches Verhalten
Guten Abend,
ich will ein Framework schreiben, dass die wichtigsten Funktionen beinhaltet. Das ist die vereinfachte Version:
Code:// Die Funktion wurde vereinfacht, sie dient jetzt nur noch als Alternative für // document.getElementById function getElement(elem) { // Wenn elem = "#id" if((/^#\w+/g).exec(elem)) { return document.getElementById(elem.replace(/#/, "")); } } function _DOM(elems) { this.elements = []; for(var i=0; i<elems.length; i++) { var element = getElement(elems[i]); this.elements.push(element); } return this; } _DOM.prototype = { each : function(func) { for(var i=0; i<this.elements.length; i++) { func.call(this, this.elements[i]); } return this; }, setStyle : function(prop, val) { this.each(function(elem) { elem.style[prop] = val; }); return this; } }; window.DOM = function() { return new _DOM(arguments); };
HTML-Code:<style> #eins, #zwei, #drei, #vier, #fuenf { width: 100px; height: 100px; float: left; margin-right: 10px; } </style> <div id="eins"></div> <div id="zwei"></div> <div id="drei"></div> <div id="vier"></div> <div id="fuenf"></div>
Code:DOM("#eins", "#zwei", "#drei", "#vier", "#fuenf").setStyle("backgroundColor", "red");
Nachdem ich die Funktion um die dickgedruckte Zeile erweitert habe
Code:function getElement(elem) { // Wenn elem = "#id" if((/^#\w+/g).exec(elem)) { console.log(document.getElementById(elem.replace(/#/, ""))); return document.getElementById(elem.replace(/#/, "")); } }
Keine Ahnung, wieso nur jedes zweite Element dort "wahrgenommen" wird.
Bin dankbar, wenn mir jemand helfen kann!Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)
-
15-10-2010, 00:21 #2
AW: Komisches Verhalten
Mich wundert's, dass überhaupt ein anderes Element als das erste angezeigt wird: dein _DOM erwartet als Parameter einen Array und nicht mehrere Parameter...
-
15-10-2010, 00:29 #3
AW: Komisches Verhalten
Durch
Code:window.DOM = function() { return new _DOM(arguments); };
Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)
-
15-10-2010, 00:30 #4
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: Komisches Verhalten
Das komische Verhalten kommt von der exec Funktion wegen dem g-Switch. JS speichert diese Ausdrücke zwischen - ich weiß nicht genau was warum da passiert, aber die Lösung wäre:
Code:function getElement(elem) { // Wenn elem = "#id" if(/^#\w/.test(elem)) { return document.getElementById(elem.replace(/#/, "")); } }
-
15-10-2010, 00:33 #5
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
AW: Komisches Verhalten
Ich glaub dieser Blogeintrag beschreibt das Problem: http://blog.thatscaptaintoyou.com/st...al-regex-flag/
Edit: und noch was - das könnte für dich interessant sein: http://www.dustindiaz.com/roll-out-your-own-interface/
EDIT 2: Ich sehe,du kennst den Eintrag schonGeändert von ein schlauer (15-10-2010 um 00:35 Uhr)
-
15-10-2010, 00:37 #6
AW: Komisches Verhalten
Vielen, vielen Dank...es klappt endlich!
Oh man, wäre fast verzweifelt daran
Zu EDIT 2: Ja, hab mich dadurch inspirieren lassenWenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Goethe)
Ähnliche Themen
-
Komisches Verhalten von Firefox bei Website - unterschiedliche Darstellungen
Von Steffffi im Forum AllgemeinesAntworten: 3Letzter Beitrag: 14-12-2009, 20:28 -
Komisches verhalten des PopUp
Von xplox im Forum JavaScriptAntworten: 4Letzter Beitrag: 02-09-2009, 16:52 -
window.open und PDF: komisches Verhalten
Von KMueller im Forum JavaScriptAntworten: 2Letzter Beitrag: 01-08-2008, 01:38 -
Komisches Verhalten im IE?
Von Schnuckenpapa im Forum CSS und (X)HTMLAntworten: 4Letzter Beitrag: 23-11-2006, 12:56 -
komisches phänomen
Von Liz im Forum CSS und (X)HTMLAntworten: 24Letzter Beitrag: 20-06-2006, 14:53
Lesezeichen