我有一个div
列表,其中包含.tile
类。 div
类中的每个.tile
都有唯一的ID。我想创建一个数组(ID' s)并根据a.link
修改ID
。我想每a.link
修改一次.tile ID
。我应该从哪里开始?
<div class="tile" id="1asdfasdfa"></div>
<div class="tile" id="2fdasdfaas"></div>
<div class="tile" id="3dfasdsadf"></div>
<div class="tile" id="4fghdfghdf"></div>
<div class="tile" id="5sdfasfdaa"></div>
<div class="tile" id="6dfasdfasf"></div>
...
<div class="tile" id="100sdfasff"></div>
<a href="#" class="link">Im A Link</a>
一个链接 - 在随机间隔X上更改。顺序通过数组。或者一些ID列表。我认为.each()
会遍历每个ID,并且每次修改一次链接。
$('html, body').scrollTop( $(document).height() );
setTimeout(function() {
var numItems = $('.tile').length;
$('.tile').each(function(index) {
var tileID = $(this).attr('id'); //Thank you
var ranNum = ((Math.floor((Math.random() * 5) + 3))*1000);
console.log(index);
$("#"+tileID).each(function () {
setInterval(function() {
$("a.link").attr("href", "/listing/share?post_id="+tileID);
}, ranNum);
});
});
}, 5000);
答案 0 :(得分:1)
创建所有ID的数组。 然后在setInterval中选择一个介于0和该数组长度之间的随机数,然后将linkId设置为随机数下的ids数组的值。然后根据该linkId设置你的href。
这是有效的,因为你拥有多少div并不重要,它只会将新的div id推送到id数组。
var ids = [];
$(".tile").each( function( index, item ) {
ids.push($(item).attr("id"));
});
var counter = 0;
var ranNum = ((Math.floor((Math.random() * 5) + 3))*1000);
setInterval( function() {
var linkId = ids[counter];
$("a.link").attr("href", "/listing/share?post_id=" + linkId).text(linkId);
counter == ids.length - 1 ? counter = 0 : counter++;
ranNum = ((Math.floor((Math.random() * 5) + 3))*1000);
}, ranNum)