我可以迭代p标签并更改为ul吗?

时间:2012-08-20 15:43:28

标签: javascript jquery html

我正在尝试创建一个脚本,该脚本遍历带有几个文本句子的段落,并在每个句子的开头和结尾插入一个li标签。这可能吗?

所以,转过这一段

<p>
   Give your work the edge with this pencil. Awesome design, and chunky gold finish. Get the look. 
</p>

进入这个无序列表

<p>
  <ul>
    <li>
      Give your work the edge with this pencil.
    </li> 
    <li>
      Awesome design, and chunky gold finish. 
    </li>
    <li>
      Get the look. 
    </li>
  </ul>
</p>

3 个答案:

答案 0 :(得分:5)

$('p').each(function() {
  var $par = $(this),
      theText = $par.text().split('. ');
  $par.text('');
  $.each(theText, function(i, item) {
    if ($.trim(item).length > 0)
      $par.append('<li>' + item + '</li>');
  });
});

未经测试,但你明白了。拆分,然后运行数组,包装在标签中。

答案 1 :(得分:2)

是的,你可以。 首先,你需要做的就是 Tokenize每个段落都带有“。”将段落分成不同的句子,然后在其间添加li标签..

要将内容从p更改为ul,您可以使用此链接::

http://api.jquery.com/replaceWith/

用于将单个段标记为句子,您可以使用它:

http://www.tizag.com/javascriptT/javascript-string-split.php

答案 2 :(得分:0)

你可以做这样的事情

$.each($(".my-content").text().split("."), function(index,item){  

     $(".my-ul").append($("<li/>").text(item));

});