我有一个变量“ getDuplicates”,其中包含如下值:

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


这些是对和范围:1stbegin,1stend,2ndbegin,2ndend

现在,我必须循环它们以应用这些范围。

    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);
        }
    }


实际上,我不知道如何设置BEGIN和END。谢谢你的提示

最佳答案

使用步骤2(i += 2),使用for循环迭代数组。使用方括号([])表示法获取起点和终点。

由于循环使用步骤2,因此在停止条件中使用array.length而不是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
}

09-27 04:17