Jquery:附加更复杂的html片段

Jquery:附加更复杂的html片段,jquery,append,fragment,Jquery,Append,Fragment,我想使用jquery将更复杂的html片段附加到div中。我能够做到这一点,但是如何在一个追加调用中做到这一点呢?。任何意见感谢!谢谢。例如: <div id="container"> <h1>Something</h1> <!-- Insert here --> </div> 某物 片段应如下所示: var arr = []; // can contain any number of items //to be us

我想使用jquery将更复杂的html片段附加到div中。我能够做到这一点,但是如何在一个追加调用中做到这一点呢?。任何意见感谢!谢谢。例如:

<div id="container">
   <h1>Something</h1>
   <!-- Insert here -->
</div>

某物
片段应如下所示:

var arr = []; // can contain any number of items
//to be used here:
<h4>Something h4</h4><!-- This string is static -->
<p>Some paragraf</p><!-- This string is static -->
<ul> <!-- This is dynamic -->
   <li>arr[0]</li>
   <li>arr[1]</li>
   <li>arr[2]</li>
   <li>arr[...]</li>
</ul>
var arr=[];//可以包含任意数量的项目
//在此处使用:
什么h4
一些滑翔伞

  • arr[0]
  • arr[1]
  • arr[2]
  • arr[…]
$。每个(arr,功能(i,a){
$('ul')。追加('
  • '+a+'
  • '); });

    基于您的上述评论。迭代列表,将值外推为
    a
    ,并将值附加到新创建的列表元素

    只需调用
    append()
    map()
    ,就可以做到这一点,但不确定它是否比简单的循环更有效,但它确实看起来更酷:

    var arr = ['error 1', 'error 2', 'error 3', 'error 4', 'error 5'];
    
    $('<ul />', {id:'someID'}).append(function() {
        return $.map(arr, function(error) { return $('<li>', {text:error}) });
    }).appendTo('#container');
    
    var arr=['error 1'、'error 2'、'error 3'、'error 4'、'error 5'];
    $('
      ',{id:'someID'}).append(函数(){ return$.map(arr,函数(error){return$('
    • ',{text:error})}); }).appendTo(“#container”);

    我能够做到这一点,但我想知道实现这一点的最佳/最优雅(性能方面)方法是什么
    。表示这应该在@Ohgodwhy Edit上结束,所以也许现在我可以得到一些建设性的答案。谢谢。这仍然很难评估。如何填充数组列表?阵列中有什么?在什么情况下应处理动态列表?你想用模板代替它吗?是否可以使用JSON并注入到结构中?数组并不是很重要。我们可以假设其中只有0-100个项目。它总是由用户操作动态填充,基本上是一个错误列表。我只是在寻找最好的附加方式(如果可能的话,使用queryappend调用)。是否可以将其附加到ul标记,同时动态创建ul(现在您已经对其进行了硬编码)?我如何通过一个追加调用来实现这一点?我唯一能弄明白的方法就是制作一个字符串,然后用+=。
    var arr = ['error 1', 'error 2', 'error 3', 'error 4', 'error 5'];
    
    $('<ul />', {id:'someID'}).append(function() {
        return $.map(arr, function(error) { return $('<li>', {text:error}) });
    }).appendTo('#container');