1

如何使用 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代码...

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

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

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

             <p> Test A </p>

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

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

2 回答 2

0

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

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

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

于 2012-04-05T01:17:21.620 回答
0

那么你试图迭代的是一个 li 元素的列表。每个都包含一些 html ( "<p>text</p>")。

鉴于您描述的场景,最快的方法是使用 outerHTML:

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

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

于 2012-04-05T01:18:34.820 回答