Php 每2个div后添加html
我试图用js或php找到解决方案,但无法解决我的问题: 我有很多div,我想在每两个div之后添加html。 这是一个例子:Php 每2个div后添加html,php,jquery,html,Php,Jquery,Html,我试图用js或php找到解决方案,但无法解决我的问题: 我有很多div,我想在每两个div之后添加html。 这是一个例子: <div> Some content </div> <div> Some other content </div> <!--Here i want to display some html--> <div> Some content </div> 一些内容 其他
<div>
Some content
</div>
<div>
Some other content
</div>
<!--Here i want to display some html-->
<div>
Some content
</div>
一些内容
其他一些内容
一些内容
有没有一种简单的方法可以在同一类的特定div数之后在html中添加字符串?您可以创建一个简单的循环:
for (var i=0;i<$(".someclass").length;i++)
{
if (i%2 == 0)
{
$($(".someclass")[i]).after("insert something");
}
}
for(var i=0;i如果要在jQuery中执行此操作,可以使用以下命令:
$("div:nth-child(2n)").after("something after the element");
对于php,您可以使用以下内容:
($i%2)==1)
如果循环以0开始
($i%2)==0)
如果循环以1
开头,则可以使用jquery的每个
// get all the divs on page
var divs = $('div');
// Iterate through each of the divs
$(divs).each(function (index, elem){
// if the current div is the an even one
if ((index % 2) === 0)) {
// add html after it
$(elem).after('your html goes here');
}
});
尽管如此,我还是建议使用@Milind Anantwar,@Adnan的回答;-) JQuery解决方案。我使用3n是因为它给出了提问者想要的东西
您可以使用:
$("div:nth-child(2n)")
使用以下简单代码:
$("div:nth-child(2n)").after('<div>Test</div>');
$(“div:nth child(2n)”)。在('Test')之后;
您可以添加JavaScript来执行此操作
$nd = 0;
$("div").each(function() {
$nd++;
if($nd%2==0)
{
$(this).after("<span>Some Html...</span>");
}
});
$nd=0;
$(“div”)。每个(函数(){
$nd++;
如果($nd%2==0)
{
$(this).after(“一些Html…”);
}
});
当然有。只需在div上迭代,就可以得到一个计数器。现在,当达到某个数字时(例如,%2==0
),您将添加额外的内容。JS和PHP都有可能,但你还是要自己做。我试着使用jquery函数。append,但我无法在每两个div后追加html,我试着用谷歌搜索解决方案,但我没有发现任何有用的东西。“谢谢你。”本杰明,看看我的答案。它解决了你的问题。要求他自己不做任何尝试就为他编码。@MaksimsMihejevs,也许你可以解释为什么Benjamin不应该这样做,而不是从第三人称的角度抱怨他?循环以$i=0
开始,0%2
是0
,因此它将它添加到第一个元素之后,然后再添加到第二个元素之后。我删除了PHP解决方案,因为jQuery已经足够了。检查我的小提琴,它完全符合提问者的意图。2n不对,我看到了一个中间状态。但它仍然是错误的,它会替换每三个元素,并且不会在每二个元素后插入。好吧,尽管问题说,每两个div,他实际上意味着其他东西,所以我给了他响应其示例的代码。你的解决方案非常有趣,我给了它+1,尽管最好的是Adnan提供的。谢谢你的解决方案是正确的。我给了你+1,但阿德南在你面前建议了。非常感谢你!我感谢你的帮助@本杰明,我只是在这里回答问题,因为我在这里也发现了很多有用的信息,所以我不关心我的声誉点:D.你不必更改已接受的答案,但如果你想在答案发布时接受答案,你应该小心,因为它们不是按时间排序的,当你在回答时,你应该查看工具提示中显示的时间代码>(如果显示为x小时前)@t-niese非常感谢;)我只想让你知道你的帮助真的很感激!该问题的最低分数为A+1!
$nd = 0;
$("div").each(function() {
$nd++;
if($nd%2==0)
{
$(this).after("<span>Some Html...</span>");
}
});