-1

我已经像这样构建了 UL/Li

<ul>
 <li><a>1.1</a></li>
 <li>.....</li>
 <li><a>1.N</a></li>
    <ul>
      <li><a>2.1</a></li>
         <ul>
           <li><a>3.1</a></li>
           .....
           <li><a>3.N</a></a></li>
         </ul>
    </ul> 
</ul>

我想删除所有 UL 和 LI 元素并保留所有标签。我的目标是将菜单作为多行字符串。

我怎么能用 jQuery 做到这一点?

4

2 回答 2

0

看看这是否对您有帮助:

JS:

var tags = $("ul li").map( function(){
          return $(this).html();
        }).get();      // get all tags in an Array.  I suspect you meant Array by saying `multi row strings`
$("#main ul").remove();

$("#main").append(tags);

字体 Html;

<div id="main">
<ul>
 <li><a>1.1</a></li>
 <li><a>1.N</a></li>
 <li><ul>
      <li><a>2.1</a></li>
       </li><ul>
           <li><a>3.1</a></li>
           <li><a>3.N</a></a></li>
         </ul>
       </li>
    </ul>
</li>
</ul>
</div>

样本

于 2013-03-16T18:22:21.833 回答
0

首先,您需要修复您的 HTML。您不能ul在其他ul元素中包含元素,它们必须在li元素中:

<ul>
  <li><a>1.1</a></li>
  <li><a>1.2</a></li>
  <li>
    <a>1.N</a>
    <ul>
      <li>
        <a>2.1</a>
        <ul>
          <li><a>3.1</a></li>
          <li><a>3.N</a></li>
        </ul>
      </li>
    </ul>
  </li>
</ul>

要删除列表并保留链接,请将链接移出列表,然后删除列表。例如:

$('ul>li>a').appendTo(document.body);
$('ul').remove();

演示:http: //jsfiddle.net/kRBRC/

于 2013-03-16T18:18:57.423 回答