kostenloser Webspace werbefrei: lima-city


|| oder bei content.split

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    ich habe auch mal wieder ein Frage.

    Gibt es die Möglichkeit in das folgende Codestück eine oder (||) "Klausel" einzugügen?
    Es wird nur ein Stück aus dem Quelltext ausgelesen, leider kann die erste Stelle 2 verschiedene Namen haben.
    Darum würde ich das gern über
    ||
    machen.


    // so habe ich den Code jetzt
    	var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
    
    
    // So stelle ich mir das vor
    var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1


    So gehts es halt leider nicht aber ich hoffe man versteht was ich meine.
    Wäre über jeden Tip dankbar.

    Gruß und schönes WE euch
    Marco
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. aff3m1tw4ff3 schrieb:
    Hi,

    ich habe auch mal wieder ein Frage.

    Gibt es die Möglichkeit in das folgende Codestück eine oder (||) "Klausel" einzugügen?
    Es wird nur ein Stück aus dem Quelltext ausgelesen, leider kann die erste Stelle 2 verschiedene Namen haben.
    Darum würde ich das gern über
    ||
    machen.


    // so habe ich den Code jetzt
    	var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
    
    
    // So stelle ich mir das vor
    var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1


    So gehts es halt leider nicht aber ich hoffe man versteht was ich meine.
    Wäre über jeden Tip dankbar.

    Gruß und schönes WE euch
    Marco



    Wieso machst du nicht erst ein string.match() und dann dein part ?

    var str = 'bla bla bll jdsadha jd djksahdjka sjksdh adjkhaksjd jhkj hsakjdhas class="petname"';
    var found = str.match(/class="petname"/g);
    var found2 = str.match(/class="anderer_petname"/g);
    if (found) {
        $('#result').html("gefunden1")
    }else if (found2) {
        $('#result').html("gefunden2")
    } else {
         $('#result').html("keins von beiden")
    }




    http://jsfiddle.net/j79Mh/1/

    :)

    Beitrag zuletzt geändert: 7.6.2013 20:53:50 von n0tiert
  4. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Das Problem dabei ist, das ich nach den ersten 3 vorkommen im Quelltext suche.
    Heißt mein Code würde durch die Abfrage sehr lang werden.

    Also das vollständige Codestück dazu sieht so aus:

    var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
    	var ht_name_all_on2 = content.split('class="petname ">')[2];// ID wird ermittelt HT 2
    	var ht_name_all_off2 = (ht_name_all_on2 != undefined) ? ht_name_all_on2.split('<')[0].trim() : '';// ID wird ermittelt HT 2
    	var ht_name_all_on3 = content.split('class="petname ">')[3];// ID wird ermittelt HT 3
    	var ht_name_all_off3 = (ht_name_all_on3 != undefined) ? ht_name_all_on3.split('<')[0].trim() : '';// ID wird ermittelt HT 3


    Es kann nun bei allen vorkommen das die gesuchte
    class
    anders heißt,
    trotzdem möchte ich Sie dann auslesen. In dem Fall ist es die andere Mögliche Klasse
    „class="petname rarepet"
    .
    Da dachte ich schnell ne „Oder Klausel“ dazwischen und fertig.
    Aber wohl falsch gedacht. Über die Schleifen ist auf jeden Fall schon mal nen Ansatz.


  5. aff3m1tw4ff3 schrieb:
    Das Problem dabei ist, das ich nach den ersten 3 vorkommen im Quelltext suche.
    Heißt mein Code würde durch die Abfrage sehr lang werden.

    Also das vollständige Codestück dazu sieht so aus:

    var ht_name_all_on1 = content.split('class="petname ">')[1];// ID wird ermittelt HT 1
    	var ht_name_all_off1 = (ht_name_all_on1 != undefined) ? ht_name_all_on1.split('<')[0].trim() : '';// ID wird ermittelt HT 1
    	var ht_name_all_on2 = content.split('class="petname ">')[2];// ID wird ermittelt HT 2
    	var ht_name_all_off2 = (ht_name_all_on2 != undefined) ? ht_name_all_on2.split('<')[0].trim() : '';// ID wird ermittelt HT 2
    	var ht_name_all_on3 = content.split('class="petname ">')[3];// ID wird ermittelt HT 3
    	var ht_name_all_off3 = (ht_name_all_on3 != undefined) ? ht_name_all_on3.split('<')[0].trim() : '';// ID wird ermittelt HT 3


    Es kann nun bei allen vorkommen das die gesuchte
    class
    anders heißt,
    trotzdem möchte ich Sie dann auslesen. In dem Fall ist es die andere Mögliche Klasse
    „class="petname rarepet"
    .
    Da dachte ich schnell ne „Oder Klausel“ dazwischen und fertig.
    Aber wohl falsch gedacht. Über die Schleifen ist auf jeden Fall schon mal nen Ansatz.




    kannst dir ja ein array mit den "match" patten bauen den gegen den string matchen , so haste nicht 1000 if else
    und sollte mal ein neuer pattern hinzukommen , fügste den einfach in den array
  6. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    n0tiert schrieb:
    kannst dir ja ein array mit den "match" patten bauen den gegen den string matchen


    Hi,

    das klingt schon nach dem was ich suche. Ich muss aber leider mal nachhaken, so ganz verstehe ich es leider nicht. Ich bastel mir jetzt ein array mit meinen beiden „class“ die ich suche.
    var splitsearch = new Array();
    splitsearch[1] = "rarepet\">";
    splitsearch[2] = "class=\"petname \">";



    Diese müsste ich nun irgendwie gegen den Source prüfen den ich auslese oder das array direkt in meinem code aufrufen. Da komme ich dann jetzt nicht mehr mit.

    So billig wie ich jetzt wieder denke geht’s schon mal nicht:
    var ht_id_all_on1 = content.split(‘’+splitsearch+’’)[2];// ID wird ermittelt HT 1
    	var ht_id_all_off1 = (ht_id_all_on1 != undefined) ? ht_id_all_on1.split('"')[0].trim() : '';// ID wird ermittelt HT 1


    Da bräuchte ich noch etwas Hilfe.

    Gruß und schönes WE euch….
  7. Updated:

    arr = ['class="petname 1"> ','class="petname 2">', 'class="petname 3">'];
    str = '<div id="idx ">dsasdasd sd sad  dsad asds dasdas</div></div><div id="id1" class="petname 2">jkhda word2 jdslkajsldk........</div>.';
    num = arr.length;
     
    for (var i=0;i<num;i++) {    
        found = str.match(arr[i]);
        if (found) {
           // ok, wir haben ein match , jetzt dein part......
    
           var ht_id_all_on1 = str.split(arr[i])[1];
           // alles hinter <div id="id1"  class="petname 2"> ausgeben
           $('#result').html(ht_id_all_on1);      
           
            //..........
    
        }
    }



    http://jsfiddle.net/xnxpd/

    Beitrag zuletzt geändert: 9.6.2013 10:06:35 von n0tiert
  8. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    Hi,

    ich danke Dir, hat zwar etwas länger gedauert aber ich habe es damit hinbekommen.
    Vielen danke für Deine Hilfe!!
  9. Hi,

    du hast zwar jetzt schon einige Antworten bekommen, aber keine davon ist die simpelste Lösung, den JS kann das schon von alleine.
    Man muss dazu nur RegEx statt Strings verwenden, dann gehts.
    Um das zu zeigen nehme ich mal dein Beispiel:
    // so war dein Code ursrpünglich
    var ht_name_all_on1 = content.split('class="petname ">')[1];
    var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';
    
    // sowas in der Art wolltest du haben
    var ht_name_all_on1 = content.split('class="petname ">' || 'class="anderer_petname ">')[1];
    var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';
    
    // und so sieht das aus, wenn du RegEx benutzt
    var ht_name_all_on1 = content.split(/class="petname ">|class="anderer_petname ">/)[1];
    var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';

    Wie man sieht ist das fast identisch zu deinem Entwurf, allerdings werden die Möglichkeiten durch eine einfache Pipe (|) per Oder verknüpft und es müssen alle Zeichen, die in RegEx besondere Bedeutung haben maskiert werden, allerdings ist das bei deinen Strings nirgends der Fall.

    Übrigens, die Schreibweise !!VARIABLE erzeugt bei der Abfrage das selbe Ergebnis wie VARIABLE!=undefined ist jedoch kürzer.

    Mit freundlichen Grüßen
  10. Autor dieses Themas

    aff3m1tw4ff3

    aff3m1tw4ff3 hat kostenlosen Webspace.

    nemoinho schrieb:
    // und so sieht das aus, wenn du RegEx benutzt
    var ht_name_all_on1 = content.split(/class="petname ">|class="anderer_petname ">/)[1];
    var ht_name_all_off1 = !!ht_name_all_on1 ? ht_name_all_on1.split('<')[0].trim() : '';



    So hatte ich mir das vorgestellt, schöne kurze Abfrage. Ich danke für den Tip, so habe ich es jetzt übernommen.

    nemoinho schrieb:
    Übrigens, die Schreibweise !!VARIABLE erzeugt bei der Abfrage das selbe Ergebnis wie VARIABLE!=undefined ist jedoch kürzer.


    Das hab ich auch gleich übernommen, wieder was dazu gelernt. Alles was die Schreibweise abkürzt ist Willkommen.

    Ich danke Euch für die Hilfe.
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!