2016-12-10 5 views
0

ich eine Variable ‚getDuplicates‘ haben, die Werte wie folgt enthält:Erhalten Paare von einem variablen Wert

getDuplicates = 100,120,450,490,600,650, ... 

Diese sind Paare und Bereiche: 1. beginnen, 1. Ende, 2. beginnen , 2. Ende

Jetzt muss ich sie loopen, um diese Bereiche anzuwenden.

var getDuplicates = $element.attr('duplicates'); 
    if (getDuplicates !== undefined && getDuplicates !== null) { 
     var noOfDuplicates = (getDuplicates.split(',').length)/2; 
     console.log(getDuplicates, 'Counter:', noOfDuplicates); 
     for (var i = 0; i < noOfDuplicates; i++) { 
      newRange = rangy.createRange(); 
      newRange.selectCharacters(rangyElement, **BEGIN, END**); 
      var newApplier = rangy.createClassApplier(highlightClass, { 
       elementTagName : "span" 
      }); 
      newApplier.applyToRange(newRange); 
     } 
    } 

Eigentlich habe ich keine Ahnung, wie Sie BEGIN und END einstellen. Vielen Dank für Ihre Tipps

Antwort

2

Iterieren Sie das Array mit einer for-Schleife in Schritten von 2 (i += 2). Holen Sie den Anfang und das Ende mit der Klammer ([]) Notation.

Da die Schleife die Schritte 2 verwendet, verwenden Sie array.length im Stoppzustand anstelle der noOfDuplicates;

var getDuplicates = "100,120,450,490,600,650"; 
 

 
// you need to split the string, so you'll have an array you can iterate 
 
var duplicates = getDuplicates.split(','); 
 

 
for(var i = 0; i < duplicates.length; i += 2) { 
 
    console.log(duplicates[i], duplicates[i + 1]); // 1st is start, 2nd is end 
 
}

+0

Dank für Ihre Hilfe danken, erhalte ich eine ‚Uncaught Typeerror: getDuplicates.split ist keine Funktion (...)‘ – mm1975

+0

meine falschen ich eine Art hatte ... Vielen Dank für Hilfe!!! – mm1975

Verwandte Themen