gpt4 book ai didi

javascript - jQuery/JavaScript for 循环和 .append

转载 作者:行者123 更新时间:2023-11-28 02:40:46 24 4
gpt4 key购买 nike

我昨天开始使用 jQuery 和 JavaScript,但遇到了错误。

我想要的只是在 H1 标签之后随机放置广告(假设页面上有 10 个 H1,除以 2 = 5 AdPosition),现在在随机选择的 H1 之后添加 5 个 AdBlock。

听起来很简单,但我无法实现这一点...:/因为 jQuery 或 myCode 只粘贴一个 AdBlock。

JsFiddle:http://jsfiddle.net/byt3w4rri0r/eCBCK/ - 工作!

<小时/>

我的HTML:

<body>
<div id="content-inner">
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
<h1 class="headline">Headline</h1>
</div>
</body>​
<小时/>

MyJQUERY/JavaScript:

//count H1
var countH1 = parseFloat($("#content-inner h1").length)-1; //-1 because 0 is also a number!

//how often the ads should be displayed
var ad_count = Math.round(countH1 / 2);

//random helper
var min = 0;
var max = countH1;

//random position
for (counter = 0; counter < ad_count; counter++){
var random_position = Math.round((Math.random() * (max - min)) + min);

console.log("Random_Position:", random_position);

// paste google-code

if ($(".headline").hasClass('advertised') == true) {
random_position++;

console.log('already advertised!')

if (random_position > countH1) {
random_position--;
}
} else {
$('h1:eq('+random_position+')').append('<div class="google_ad1"></div>');
$('h1.headline').addClass('advertised');
}
}

console.log("CountH1 -1, because 0=1, 1=2,....", countH1);
console.log(werbung_anzahl);
console.log(zufall_position);
console.log(counter);

最佳答案

用这一行

if ($(".headline").hasClass('advertised') == true)

您正在检查是否有任何(!).headline 元素已被公布。并且在第一步之后总会有一个 .headline 已被广告,因此这种比较将是正确的。

您想要执行的操作:检查当前索引的 .headline 是否已发布

if ($(".headline").eq(random_position).hasClass('advertised') == true)

除此之外,您还将“advertized”类添加到所有(!)您的 h1.headline 元素中。这就是你想做的事情

$('h1.headline').eq(random_position).addClass('advertised');

编辑:这是从 http://jsfiddle.net/eCBCK/19 的最新 fiddle 中完全更改的 for 循环

for (counter = 0; counter < ad_count; counter++){
var random_position = Math.round((Math.random() * (max - min)) + min);

console.log("Random_Position:", random_position);

// paste google-code

if ($(".headline").eq(random_position).hasClass('advertised') == true) {
counter--;

console.log('already advertised!')


} else {
$('h1:eq('+random_position+')').append('<div class="google_ad1"></div>');
$('h1.headline').eq(random_position).addClass('advertised');
}
}

关于javascript - jQuery/JavaScript for 循环和 .append,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12687556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com