每次课程出现时包装内容 - 可能吗?

时间:2018-06-12 13:06:17

标签: javascript jquery ajax

每次我在表单中添加li.gsection时,我想在我的li标签周围包装一个div。

  1. 是否可以像这样自动换行?我知道如何手动换行和包装,但这完全不同。

  2. 第三节课总是我的自定义课程。我希望将它添加到包装器中,然后将_comtainer添加到它。

  3. 这是一个奢侈品问题但是。表单使用ajax,即使我使用多部分表单也可以加载?一个有几页步骤的表格?

  4. 我对这个网站有点失落和新手,但如果我必须先做一些事情,请告诉我。

    Keviin。

    我的格式是

    <ul>
        <li class="gform gsection info random-class">Title</li>
        <li class="random-class">Name</li>
        <li class="random-class">Email</li>
        <li class="random-class">Phone</li>
        <li class="gform gsection more_info random-class">Title again</li>
        <li class="random-class">Something</li>
        <li class="random-class">Something</li>
        <li class="random-class">Something</li>
        <li class="gform gsection last_info random-class">Title again</li>
        <li class="random-class">Something</li>
        <li class="random-class">Something</li>
    </ul>
    

    我想要这个:

    <ul>
        <ul class="section info_container">
            <li class="gform gsection info random-class">Title</li>
            <li class="random-class">Name</li>
            <li class="random-class">Email</li>
            <li class="random-class">Phone</li>
        </ul>
        <ul class="section more_info_container">
            <li class="gform gsection more_info random-class">Title again</li>
            <li class="random-class">Something</li>
            <li class="random-class">Something</li>
            <li class="random-class">Something</li>
        </ul>
        <ul class="section last_info_container">
            <li class="gform gsection last_info random-class">Title again</li>
            <li class="random-class">Something</li>
            <li class="random-class">Something</li>
        </ul>
    </ul>
    

1 个答案:

答案 0 :(得分:1)

使用CSS简单伪装可能会更好:

class Node {
    public Node parent;
    public List<Node> children;
}
li {
  list-style: circle;
  margin-left: 3em
}

li.gsection {
  list-style: disc;
  margin-left: 0
}

...但是如果你真的需要重构DOM,这里有一种方法:它通过找到每个<ul> <li class="gform gsection info random-class">Title</li> <li class="random-class">Name</li> <li class="random-class">Email</li> <li class="random-class">Phone</li> <li class="gform gsection more_info random-class">Title again</li> <li class="random-class">Something</li> <li class="random-class">Something</li> <li class="random-class">Something</li> <li class="gform gsection last_info random-class">Title again</li> <li class="random-class">Something</li> <li class="random-class">Something</li> </ul>列表项的索引,向前扫描以找到下一个的索引,然后包装新.gsection中的群组。

ul
var refactor = function(parent) {
  var lis = parent.find('li');
  for (var i = 0; i < lis.length; i++) {
    if ($(lis[i]).hasClass('gsection')) {
      // found a header, read the relevant classname:
      var headerClass = "";
      if ($(lis[i]).hasClass('info')) {
        headerClass = "info_container"
      } else if ($(lis[i]).hasClass('more_info')) {
        headerClass = "more_info_container"
      } else if ($(lis[i]).hasClass('last_info')) {
        headerClass = "last_info_container"
      }

      // scan ahead until we find the next header:
      var j = i+1;
      while (j < lis.length) {
        if ($(lis[j]).hasClass('gsection')) break;
        j++
      }
      lis.slice(i+1, j).wrapAll("<ul class='section "+headerClass+"'>");
      i = j-1; // no need to iterate over the elements we just scanned past
    }
  }
}

refactor($('ul'))

  

表单使用ajax,即使我使用多部分表单也可以加载?一个有几页步骤的表格?

这将取决于这些部分的确切分解程度,但一般情况下假设您在插入DOM后在每个部件的列表上运行它,它应该可以工作(除了跨越多个部分的子列表) 。)