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

    [js] gestione dati in array

    ciao a tutti,
    ho una pagina con una serie di link

    Codice PHP:
    [url='link1.html']primo[/url] ...
    [
    url='link2.html']altro link[/url]
    [
    url='altrolink.html']altro link[/url]
    [
    url='altrolink.html']altro link2[/url
    tramite js recupero tutti i link, però vorrei suddividerli in base all' attributo rel , quelli che hanno lo stesso rel devono stare assieme

    una prima 'scrematura' posso farla togliendo dall' array dei link quelli con attributo 'link', ma per gli altri come faccio a raggrupparli?

    grazie

  2. #2
    Prova così:
    Codice PHP:
    function prendi_link() {
      var 
    document.getElementsByTagName("a"),
           
    a.length0
           res 
    = {}
           
    rel;
      for(; 
    i!=li++) {
        
    rel a[i].rel || 'altri';
        if(!
    res[rel]) res[rel] = [];
        
    res[rel].push(a[i].href);
      }
      return 
    res;
    }

    var 
    mio_oggetto prendi_link(); 
    mio_oggetto ora dovrebbe avere una struttura di questo tipo:
    {
    'link': [
    'primo'
    ],
    'link[gal2]': [
    'altro link',
    'altro link'
    ],
    'link[gal3]': [
    'altro link2'
    ]
    }


    Attento che non ho provato, potrebbero esserci errori

  3. #3
    ciao, ho provato il tuo codice, per accedere agli array dell' oggetto ho provato così:

    Codice PHP:
    alert(mio_oggetto.link)
    alert(mio_oggetto.ink[gal2]) 
    ma mi da un bel undefined

    poi ci sarebbe un 'altro problema, la stringa dentro rel('link') è costante, mentre quello che c'è dentro la parentesi quadra a priori non lo posso sapere, xchè il contenuto viene creato dinamicamente


  4. #4
    Mi ero mangiato 2 virgole, scusa
    Codice PHP:
    function prendi_link() {
      var 
    document.getElementsByTagName("a"),
           
    a.length0,
           
    res = {},
           
    rel;
      for(; 
    i!=li++) {
        
    rel a[i].rel || 'altri';
        if(!
    res[rel]) res[rel] = [];
        
    res[rel].push(a[i].href);
      }
      return 
    res;
    }

    var 
    mio_oggetto prendi_link(); 
    Se tu vuoi che le voci link, link[gal2] e link[gal3] stiano insieme è necessario fare qualche modifica:

    Codice PHP:
    function prendi_link() {
      var 
    document.getElementsByTagName("a"),
           
    a.length0,
           
    res = {},
           
    posrel;
      for(; 
    i!=li++) {
        
    pos a[i].rel.indexOf("[")
        
    rel = ( a[i].rel || 'altri' ).substring(0pos == -a.length pos);
        
    alert(rel);
        if(!
    res[rel]) res[rel] = [];
        
    res[rel].push(a[i].href);
      }
      return 
    res;
    }

    var 
    mio_oggetto prendi_link(); 
    Stavolta ho provato

  5. #5
    lo script che mi hai postato, mi sembra di aver capito che mi restituisce un oggetto contenente gli array con i dati che mi servono, ma come faccio a leggere i dati?

    ho provato così:

    alert(mio_oggetto[0]);
    alert(mio_oggetto['link'])

    ma mi da sempre undefined


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 © 2026 vBulletin Solutions, Inc. All rights reserved.