添加新的父div,然后在此父div中添加一个div

时间:2015-04-21 12:49:51

标签: javascript jquery

我想做一个简单的操作,但我不明白为什么它不起作用我有一个div:

<input type='button' value='validate' class='popupjq'>

我想在这个输入中添加一个父div,并且还有一个'兄弟'div来获得这个结果:

<div id = 'id_parent'>
   <input type='button' value='validate' class='popupjq'>
   <div id = 'id_brother'></div>
</div>

所以我使用这个javascript:

$(".popupjq").each(function() {
    var divParent = $("<div id = 'id_parent' style='display:inline-block; position:relative;'>");
    var divCache = $("<div id='toto'>");
    $(this).wrap(divParent);
    $(divParent).append(divCache);
});//bracket missing

我的问题是父div是create而不是兄弟div。

3 个答案:

答案 0 :(得分:1)

您可以使用insertAfter()将第二个元素放在您需要的位置:

$(".popupjq").each(function() {
    $(this).wrap('<div id="id_parent" style="display: inline-block; position: relative;"></div>');
    $('<div id="toto"></div>').insertAfter(this);
});

Example fiddle

答案 1 :(得分:1)

  • 您尚未正确关闭每个循环(勾选括号)。
  • 您应该将DIV的HTML指定为字符串。
  • 使用“each”意味着你 计划在几个元素上应用此方法。在这种情况下你 因为ID,所以应该在DIV的HTML中使用类而不是ID 意味着在DOM中只存在一次。
  • 您没有正确处理您的父DIV(请参阅我的方法)。

http://jsfiddle.net/1yn8qgg3(带有背景颜色的CSS可视地标记DIV)

$(".popupjq").each(function() {
  var divParent = "<div class='class_parent'></div>";
  var divCache = "<div class='class_toto'></div>";
  $(this).wrap(divParent);
  $(this).parent().append(divCache);
});

希望这有帮助。

答案 2 :(得分:0)

执行以下操作以获得结果

$(function(){
$(".popupjq").each(function() {
    var divParent = $("<div id = 'id_parent' style='display:inline-block; position:relative;'> </div>");
    var divCache = $("<div id='toto'> </div>");
    $(this).wrap(divParent);
    $(this).append(divCache);
});

});

Fiddle