Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Javascript 如何使用jquery生成html列表_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jquery生成html列表

Javascript 如何使用jquery生成html列表,javascript,jquery,Javascript,Jquery,为什么下面的代码(1)没有给出下面的输出(2) (一) var$ul=$(“”); var$li=$(“”).text('text'); $ul.附加($li); $ul.附加($li); $ul.附加($li); $('')。附加($ul); (二) 文本 文本 文本 试试看 $(“”) .附加( 美元(“”) .附加( 美元(“”) .文本(“文本”) ) .附加( 美元(“”) .文本(“文本”) ) .附加( 美元(“”) .文本(“文本”) ) ); 当您多次附加相同的$li

为什么下面的代码(1)没有给出下面的输出(2)

(一)

var$ul=$(“
    ”); var$li=$(“
  • ”).text('text'); $ul.附加($li); $ul.附加($li); $ul.附加($li); $('')。附加($ul);
(二)


  • 文本
  • 文本
  • 文本
试试看

$(“”)
.附加(
美元(“
    ”) .附加( 美元(“
  • ”) .文本(“文本”) ) .附加( 美元(“
  • ”) .文本(“文本”) ) .附加( 美元(“
  • ”) .文本(“文本”) ) );

当您多次附加相同的
$li
时,您只是在移动它。您需要为每个追加创建一个新的追加。

您正在一次又一次地追加相同的li,而不是创建一个新的li

我建议改为创建一个html字符串并一次将其全部追加

var strHTML = "<div><ul>";
strHTML += "<li>text</li>";
strHTML += "<li>text</li>";
strHTML += "<li>text</li>";
strHTML += "</ul></div>";
var elements = $(strHTML);

//OR in jQuery 1.8.0+    
//var elements = $.parseHTML(strHTML);
var strHTML=“
    ”; strHTML+=“
  • 文本”
  • ”; strHTML+=“
  • 文本”
  • ”; strHTML+=“
  • 文本”
  • ”; strHTML+=“
”; var元素=$(strHTML); //或者在jQuery 1.8.0+中 //var元素=$.parseHTML(strHTML);
另外,您应该始终将完整的html传递到
$()
,意思是
$(“
  • ”)而不是
    $(“
  • ”)
  • ,否则以后升级jQuery时您将有大量工作要做。

    使用克隆。

    $li.clone().appendTo('ul');
    
    您可以使用
    clone()
    方法

    var $ul = $('</ul>');
    var $li = $('</li>', {text:'text'});
    $ul.append($li.clone());
    $ul.append($li.clone());
    $ul.append($li.clone());
    $('<div/>').append($ul)
    
    var$ul=$(“”);
    var$li=$(“
  • ”,{text:'text}); $ul.append($li.clone()); $ul.append($li.clone()); $ul.append($li.clone()); $('')。追加($ul)
    您可以使用while循环:

    var i = 1;
    
    while (i <= 3){
        $('ul').append('<li>Text</li>');
        i=i+1;
    }
    
    var i=1;
    而(i
    var$ul=$(“
      ”);
      对于(i=0;i您正在一次又一次地添加同一个li,而不是创建一个新的li。为什么会这样?即使没有添加相同的列表项,您也不会对正在生成的HTML执行任何操作。此外,在提问时,最好描述您看到的行为,以使问题更容易回答。有很多不同的t答案张贴在这里。其中一些建议了创建新元素的不同方法。下面是一个关于做什么以及为什么要做的长期讨论:
      $li.clone().appendTo('ul');
      
      var $ul = $('</ul>');
      var $li = $('</li>', {text:'text'});
      $ul.append($li.clone());
      $ul.append($li.clone());
      $ul.append($li.clone());
      $('<div/>').append($ul)
      
      var i = 1;
      
      while (i <= 3){
          $('ul').append('<li>Text</li>');
          i=i+1;
      }
      
      var $ul = $('<ul />');
      
      for (i=0; i<3; i++) {
          $ul.append($('<li />', {text : 'text'}));
      }
      
      $('<div>').append($ul);