Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Convertire il nodo testo dell'innerHTML in una vera stringa

    Mi sono imbattuto in un altro problema, che sicuramente sarà qualcosa di stupido come al solito.

    In pratica devo confrontare due stringhe, per dire ad un'altra funzione se fare una certa operazione o un altra, in base alla posizione di certi elementi di testo.

    elementi[] è la mia array contenente i dati di default.
    Io devo confrontare la posizione iniziale della stringa con il testo contenuto nel primo div, e capire se l'innerHTML e la stringa sono indentici. Il problema è che ho provato un po' di tutto, tra conversioni varie, ma la stringa contenuta in elementi[0] non può essere confrontata con il testo in innerHTML, perchè evidentemente non è una stringa vera e propria.

    Questa è la funzione a cui mi riferisco:

    Codice PHP:
            function controllo() { // Verifica se posizione = iniziale
                
    listaDefault();
                var 
    compare document.getElementById("C1").innerHTML;
                if (
    StrCmp(compare,elementi[0]) == 0) {
                    
    alert("boh");
                    return 
    true;
                }
            } 
    Questo è il testo completo:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml" >
    <
    head>
        <
    title>Visualizzatore</title>
        <
    script language="javascript" type="text/javascript">
            function 
    listaDefault() { // Lista degli elementi da visualizzare, modificare con dati DB [Ok]
                
    elementi = new Array("Staff""Supermoderatori""Admin""Moderatori""Helper""Helper in prova""Traduttori""Redattori");
            }
            function 
    controllo() { // Verifica se posizione = iniziale
                
    listaDefault();
                var 
    compare document.getElementById("C1").innerHTML;
                if (
    StrCmp(compare,elementi[0]) == 0) {
                    
    alert("boh");
                    return 
    true;
                }
            }
            function 
    caricamento() { // Caricamento dati iniziali [Ok]
                
    listaDefault();
                for (
    16i++) {
                    var 
    container document.getElementById("C" i);
                    var 
    testo document.createTextNode(elementi[-1]);
                    
    container.appendChild(testo);
                }
            }
            function 
    evidenziaIn(ct) { // Da impostare visualizzazione del box al passare del mouse [Ok]
                
    ct.style.border "3px outset grey";
                
    ct.style.opacity 1;
            }
            function 
    evidenziaOut(ct,ps) { // Da impostare visualizzazione del box di default [Ok]
                
    ct.style.border "1px solid black";
                
    ct.style.opacity = (1.2 - (0.25 ps));
            }
            function 
    moveTo(w) { // Passaggio di stato andando avanti o indietro con la visualizzazione
                
    var check 0;
                if (
    controllo() == true) {
                    
    listaDefault();
                }
                else {
                    
    check 1;
                }
                
    sposta = new Array();
                for (
    16i++) {
                    if (
    == 1) { // Scelta avanti
                        
    if (check == 1) {
                            
    alert("1");
                        }
                        else {
                            
    alert("0");
                        }
                      
    /*  sposta[i - 1] = elementi[i];
                        document.getElementById("C" + i).innerHTML = sposta[i - 1];*/
                    
    }
                   
    /* else { // Scelta indietro
                        sposta[i - 1] = elementi[i - 1];
                        document.getElementById("C" + i).innerHTML = sposta[i - 1];
                    }*/
                
    }
            }
        
    </script>
        <style type="text/css">
            .container1 
            { 
                background: grey;
                opacity: 0.95;
                border: 1px solid black;
                width: 250px;
                height: 150px;
                float: left;
                margin: 5px 5px 5px 5px;
                padding: 3px 3px 3px 3px;
                font-size: 25px;
            }
            .container2 
            {
                background: grey;
                opacity: 0.70;
                border: 1px solid black;
                width: 225px;
                height: 135px;
                float: left;
                margin: 5px 5px 5px 5px;
                padding: 3px 3px 3px 3px;
                font-size: 25px;
            }
            .container3 
            {
                background: grey;
                opacity: 0.45;
                border: 1px solid black;
                width: 200px;
                height: 120px;
                float: left;
                margin: 5px 5px 5px 5px;
                padding: 3px 3px 3px 3px;
                font-size: 25px;
            }
            .indietro 
            {
                float: left;
                background: black;
            }
            .avanti 
            {
                float: left;
                background: black;
            }
        </style>
    </head>
    <body onload="caricamento()">
        <div id="main">
            <div class="indietro" id="back">
                [img]http://www.mmorpgitalia.it/site/images/mmorpgitalia/pagination/previous-right.png[/img]
            </div>
            <div class="container3" id="C1" onmouseover="evidenziaIn(this)" onmouseout="evidenziaOut(this,3)">
            </div>
            <div class="container2" id="C2" onmouseover="evidenziaIn(this)" onmouseout="evidenziaOut(this,2)">
            </div>
            <div class="container1" id="C3" onmouseover="evidenziaIn(this)" onmouseout="evidenziaOut(this,1)">
            </div>
            <div class="container2" id="C4" onmouseover="evidenziaIn(this)" onmouseout="evidenziaOut(this,2)">
            </div>
            <div class="container3" id="C5" onmouseover="evidenziaIn(this)" onmouseout="evidenziaOut(this,3)">
            </div>
            <div class="avanti" id="fwd">
                [img]http://www.mmorpgitalia.it/site/images/mmorpgitalia/pagination/next-right.png[/img]
            </div>
        </div>
    </body>
    </html> 
    Suggerimenti? Come posso procedere? E' importante per me sapere se la posizione degli elementi è quella, e mi serve per forza una comparazione tra gli elementi, che preciso non saranno MAI uguali in quella stringa, anche quando verrà riempita di elementi del DB.

    Grazie a chi mi saprà aiutare

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Partendo dal presupposto che tu abbia ragione per "forzare" un valore in stringa è toString() prova cosi:
    var compare = document.getElementById("C1").innerHTML.toString() ;
    anche se non credo sia questo il problema, mentre ho forti dubbi su questa funzione StrCmp(compare,elementi[0]) (se di funzione si tratta) verifica che ti ritorni un numero
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Originariamente inviato da cavicchiandrea
    Partendo dal presupposto che tu abbia ragione per "forzare" un valore in stringa è toString() prova cosi:
    var compare = document.getElementById("C1").innerHTML.toString() ;
    anche se non credo sia questo il problema, mentre ho forti dubbi su questa funzione StrCmp(compare,elementi[0]) (se di funzione si tratta) verifica che ti ritorni un numero
    Beh, non dico di aver ragione, ma devo verificare che un testo è identico ad un altro testo, solo che uno si trova dentro un'array, l'altro dentro il nodo dell'innerHTML...

    Purtroppo ho già provato una conversione diretta in stringa, ma non ha dato i suoi risultati.
    StrCmp() da quel che so è booleana e restituisce 0 quando le due stringhe sono identiche, ma potrei anche sbagliarmi...

    Ho provato più volte anche questa strada, teoricamente non corretta (che tra l'altro mi portava oltre, ma senza dare successo nella comparazione):

    Codice PHP:
            function controllo() { // Verifica se posizione = iniziale
                
    listaDefault();
                var 
    compare document.getElementById("C1").innerHTML;
                if (
    compare == elementi[0]) {
                    
    alert("boh");
                    return 
    true;
                }
            } 

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma non vorrei sbagliarmi ma che io sappia in js StrCmp() non esiste, pertanto se non è una funzione creata da te non potrà mai funzionare e per confrontare una stringa meglio ripulire la stessa da eventuali spazi/ritorni a capo/etc... (una specie di trim() che però in js non esiste e dovrai creartela cerca qui nel forum se ne già parlato)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.