2010-04-07 11 views
6

Supponiamo che io ho questo markup HTML:JQuery: leggere ogni riga di un elemento

<div id="wrapper"> 
<pre class="highlight"> 
    $(function(){ 
    // hide all links except for the first 
    $('ul.child:not(:first)').hide(); 
    $("a.slide:first").css("background-color","#FF9900"); 

    $('ul.parent a.slide').click(function(){ 
     $('ul.parent a.slide').css("background-color","#3399FF"); 

     $('ul.parent a.slide').mouseout(function(){ 
      $(this).css("background-color","#3399FF"); 
     }); 

     $('ul.parent a.slide').mouseover(function(){ 
      $(this).css("background-color","#66CC66"); 
     }); 
    }); 
    }); 
    </pre> 
</div> 

Qual è il modo più semplice per leggere ogni riga di codice presente nel div. Come estrao ogni linea di codice da quel div o loop su ogni stile di linea in ogni modo che voglio.

Grazie

Edit:

ho aggiunto il tag pre dopo la classe wrapper, perche anche questo. Grazie

+2

Suppongo che tu abbia 'white-space: pre' nel CSS per' # wrapper' o qualcosa del genere? –

+1

Questo è il male nella sua forma più pura. – googletorp

+0

@ T.J. Crowder: sì, sì. – Sarfraz

risposta

15

Vuoi dire qualcosa di simile:

var lines = $("#wrapper pre").text().split("\n"); 
$.each(lines, function(n, elem) { 
      console.log(elem); 
      }); 

Dal momento che questo è un testo (e non html) si dovrebbe trattare come tale. L'unico modo per farlo è leggerlo e quindi utilizzare le routine di analisi delle stringhe.

+0

per favore vedi la mia nuova modifica sulla domanda. Grazie – Sarfraz

3

Per lo più solo bisogno di JavaScript dritto:

var text; 

text = $('#wrapper pre').text(); // Or .html, doesn't really matter with the input you showed 
text = text.replace("\r\n", "\n"); // Just in case 
text = text.split("\n"); 
// text is now an array of lines 

Alcuni browser taglierà la prima interruzione di linea, altri no, quindi ci sono un paio di casi limite (no pun). Ma questo è fondamentalmente.

+0

per favore vedi la mia nuova modifica sulla domanda. Grazie – Sarfraz

Problemi correlati