我有一个变量“ 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
}