如何使用jquery遍历克隆列表

时间:2012-04-05 01:12:04

标签: jquery

如何使用jquery循环克隆列表?

     <ul id=testList>
          <li><p> Test A </p></li>
          <li><p> Test B </p></li>
          <li><p> Test C </p></li>
          <li><p> Test D </p></li>
          <li><p> Test E </p></li>
     </ul>

jquery code ...

         var $cloneList = $("#testList").clone();

         $cloneList.each(function()
         {
              alert($(this).html());
         });

问题是alert方法的输出显示列表的内容:

             <p> Test A </p>

我需要的是像这样显示ul列表

            <li><p> Test A </p></li>

2 个答案:

答案 0 :(得分:0)

没有直接的方法在jQuery中打印元素及其自己的标记,你可以做的是在div中间包装元素并打印它的innerHtml:

$clonseList.each(function() {
   alert(this.outerHTML || $('<div />').append($(this).clone()).html());
});

以上内容不会修改DOM,因为我们从不将额外的<div>附加到文档中。

答案 1 :(得分:0)

你想要迭代的是一个li元素列表。每个都包含一些html("<p>text</p>“)。

最快的方法是根据您描述的场景使用outerHTML:

$cloneList.find('li').each(function(){
alert(this.outerHTML);
});

然而,发布更大范围的问题可能是谨慎的,因为似乎.clone()的结果可能不是您想要使用的结果。