Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 每2个div后添加html_Php_Jquery_Html - Fatal编程技术网

Php 每2个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> 一些内容 其他

我试图用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数之后在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>");
   }
});