道歉,如果这是一个愚蠢的问题 - 并且看到问题本质上是数学问题而不是编码问题,我不确定它在这里是多么合适,但我想我会问。
我的问题如下:
页面顶部是一个滑块,根据滑块的位置输出0到100之间的值。
在此之下,我有一段文字,其中包含x个代词(每个包含在<span class='pronoun'>
标签中),我想用该人的名字替换。换句话说,我试图替换每个第n个代词,n的值取决于滑块的位置。
例如:(如果我的段落有16个代词)
代数的奇数,或者滑块上其他位置的位置可能会有点棘手,但是舍入到最接近的整数应该足够准确,以达到我想要实现的目的。
我目前的尝试让我想到了这个:
$('#pronouns').on('input', function() {
var slider = $(this).val();
$('#commentContainer').find('.sortable').each(function(index) {
var innerDivId = $(this).attr('id');
var name = atob($(this).data('all').name);
var comment = $(this).find('p');
var count = comment.children('.pronoun').length;
var i = 0;
var child = 0;
var children = [];
while (i <= count) {
n = parseInt(count/((count/100)*slider));
child = (n * i) + 1;
children.push(child);
comment.children('.pronoun:nth-child(' + child + ')').html(name);
i++;
}
console.log("slider is " + slider + ", pronouns : " + count + ", i is: " + i + ", n is: " + n + ", children are: " + children.toString());
});
});
然而,正如我所说的那样,我的滑块具有相反的效果 - 随着滑块向右移动,分布变得越来越大,而不是越小。
任何建议或指示将不胜感激。可能还有一个我没有想到的替代解决方案,我同样愿意接受这方面的建议。