Forum: PC-Programmierung jQuery parameter im "Befehl"


von baer (Gast)


Lesenswert?

Hi,

ist es möglich das text/html/val als Parameter im jQuerybefehl zu 
übergeben
1
$( selector ).val( "value" );
2
$( selector ).text( "value" );
3
$( selector ).html( "value" );

das prinzip ist einfach, ich arbeite ein Array ab, in dem steht entweder 
ein Textfeld oder ein Div,... dazu gibt es immer "Text" oder "Values"...

damit ich nicht "3" funktionen schreiben muss
1
function setVal( selector, wert ) {
2
   $( selector ).val( wert );
3
}
4
5
function setText( selector, wert ) {
6
   $( selector ).text( wert );
7
}
8
9
...

würde ich gerne den Parameter "was es ist" mitübergeben
1
function setMyObject( selector, wert, doing ) {
2
   $( selector ).{doing}( wert );
3
}


ist das überhaupt möglich?

: Verschoben durch User
von Andreas M. (andiator)


Lesenswert?

Ist das der richtige Unterforum? (µC und so)

aber egal, das hier könnte klappen, habe aber nicht getestet:
1
function setMyObject( selector, wert, doing ) {
2
   $( selector )[doing]( wert );
3
}

man beachte die *[]*

MfG,
Andreas

von H. E. (hobby_elektroniker)


Lesenswert?

Hi,

ja über Parameter sehr leicht machbar. Mit "automatischer" Erkennung 
wird es schon schwieriger. Zumal ja .text() und .html() zwei komplett 
unterschiedliche Dinge sind. ;)

Im einfachsten Fall z.B. so:
1
var setValue = function(selector, value, action) {
2
   switch(action) {
3
       case "html":
4
       case "text":
5
       case "val":
6
          $(selector)[action](value);
7
       break;
8
   }
9
}
10
11
setValue(selector, 'bla<br>blub', 'text');

Woher weißt du, ob du text() oder html() benutzen willst? Sind ja zwei 
unterschiedliche Dinge.. ;)

Frage: Macht die Funktion überhaupt sinn? Wo ist dein Ersparnis bei 
Bedingungen wenn du einfach direkt die Methode aufrufst die du möchtest 
oder deine selbst geschriebene? ;)

: Bearbeitet durch User
von baer (Gast)


Lesenswert?

top... danke :)

[] bringts :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.