JQuery如何在创建的元素中创建元素

时间:2017-12-07 11:33:20

标签: javascript jquery html dom createelement

我正在code工作 - https://jsfiddle.net/md_bender/pj6a1akz/3/。我需要创建新元素并将它们附加到现有元素ul。通过创建元素并附加一切都可以。 但我不知道如何在创建的元素中创建子元素。我需要创建

wb

在我之前在脚本中创建的div中。它一定是那样的

<img src="path"/>

但我唯一能做的就是创建div的下一个兄弟

<div class="img-w js-popup">
    <img src="path"/>
</div>
<a href="delete.php">Delete</a>

谁能帮助我并解决我的问题?

4 个答案:

答案 0 :(得分:2)

您可以在将该div附加到img之前将div附加到li。您也可以编写相同的代码,例如Fiddle

$('<li/>')
  .append($('<div/>', {
    'class': 'img-w js-popup',
  }).append($('<img/>', {
    'src': '//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80'
  })))
  .append($('<a/>', {
    href: 'delete.php',
    text: 'Delete'
  }))
  .appendTo('ul');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>
    <div>
      <img src="//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80" alt="" />
    </div>
    <a href="delete.php">Delete</a>
  </li>
</ul>

答案 1 :(得分:0)

问题是因为append()电话是li本身,而不是您刚添加的div。试试这个:

var $div = $('<div/>', { 
  'class': 'img-w js-popup' 
});
$('<img/>', { 
  'src': '//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80' 
}).appendTo($div)
	
$('<li/>').append($div).append($('<a/>', {
  href: 'delete.php',
  text: 'Delete'
})).appendTo('ul');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<ul>
  <li>
    <div>
      <img src="//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80" alt="" />
    </div>
    <a href="delete.php">Delete</a>
  </li>
</ul>

话虽如此,您正在使用最详细的创建HTML的方法。由于您对所有属性进行了硬编码,因此只需提供纯字符串即可简化 - 甚至只需克隆前一个li并附加该字符串即可。

答案 2 :(得分:0)

如果不需要单个DOM(li,div,img),则更容易创建静态字符串并将整个附加到列表中,就像那样(记住反斜杠):

$('ul').append("<li><div><img src=\"//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80\" alt=\"\"/></div><a href=\"delete.php\">Delete</a></li>");

答案 3 :(得分:0)

$('<li/>')
    .append($('<div/>', {
        'class': 'img-w js-popup',
    }))
    .append($('<div/>', {
        'id': 'idOFDiv'
    }))
    .append($('<a/>', {
        href: 'delete.php',
    text: 'Delete'
    }))
    .appendTo('ul');

 $("#idOFDiv").append($('<img/>', {
        'src': '//www.gravatar.com/avatar/9142888a2ae6160f2faec90134eeafa3/?default=&s=80'
    }));
相关问题