查找此类标题,然后在该 div 上方放置一个新单词。

3
<HTML>

<HEAD></HEAD>

<BODY BGCOLOR="#ffffff">


  <DIV>
    <H3 CLASS="Heading-1">First Level Heading</H3> 
    <DIV>
      <H4 CLASS="Heading-2">Second Level Heading</H4>
      <DIV>
        <H6 CLASS="Heading-3">Third Level Heading</H6>
        <P CLASS="Tab-Text-7">Some Text Here</P>
      </DIV>


      <DIV>
        <H6 CLASS="Heading-3">Third Level Heading</H6>
        <TABLE>
          <TR>
            <TD ROWSPAN="1" COLSPAN="1">
              Some Cotents Here
            </TD>
          </TR>
        </TABLE>
      </DIV>

      <DIV>
        <H6 CLASS="Heading-3">Third Level Heading</H6>
        <TABLE>
          <TR>
            <TD ROWSPAN="1" COLSPAN="1" class="green1">
              Some text goes here
            </TD>
          </TR>
        </TABLE>
      </DIV>


      <DIV>
        <H6 CLASS="Heading-3">Third level Heading</H6>
      </DIV>
      <DIV>
        <H6 CLASS="Heading-4">Fourth Level Heading </H6>
        Some Text Goes here
      </DIV>


      <DIV>
        <H4 CLASS="Heading-2">Second Level Heading</H4>
        <DIV>
          <H6 CLASS="Heading-3">Third Level Heading   </H6>
          <TABLE>
            <TR>
              <TD ROWSPAN="1" COLSPAN="1" class="blue1">
                SOme text goes here
              </TD>
            </TR>
          </TABLE>
        </DIV>
      </DIV> <DIV>
      <H6 CLASS="Heading-3">Third Level Heading</H6>
      Some text goes here
    </DIV>
  </DIV>
</BODY>

</HTML>

期望输出:

<HTML>
<HEAD></HEAD>
<BODY BGCOLOR="#ffffff">

xxxxx

<DIV>
<H3 CLASS="Heading-1">First Level Heading</H3>  
<DIV>
<H4 CLASS="Heading-2">Second Level Heading</H4>
<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<P CLASS="Tab-Text-7">Some Text Here</P>
</DIV>

xxxxx

<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
Some Cotents Here
</TD>
</TR>
</TABLE>
</DIV>

xxxxx

<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1"class="green1">   
Some text goes here
</TD>
</TR>
</TABLE>
</DIV>

xxxxx

<DIV>
<H6 CLASS="Heading-3">Third level Heading</H6>
</DIV>
<DIV>
<H6 CLASS="Heading-4">Fourth Level Heading </H6>
Some Text Goes here
</DIV>

xxxxx

<DIV>
<H4 CLASS="Heading-2">Second Level Heading</H4>
<DIV>
<H6 CLASS="Heading-3">Third Level Heading   </H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1" class="blue1">
SOme text goes here
</TD>
</TR>
</TABLE>
</DIV>

xxxxx

<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
Some text goes here
</DIV>
</BODY>
</HTML>

从上面的代码中,我想搜索标题并在该标题上方放置“XXXXX”。如果它包含任何子标题(即标题1包含标题2),则此时应将“XXXXX”单词放置在父标题而不是子标题上方。(标题1是父级)请帮忙,谢谢。

请问您能否再进一步澄清您想要达到的目标吗?达到预期输出将是一个可以接受的答案吗? - Aramil Rey
当然,伙计。谢谢你的回复。你可以从代码中看到,我想搜索类名为heading-1或Heading-2等的类,并在该div上方放置或添加新单词或字符串。此外,如果它包含子元素(即标题1包含标题2和标题3),则此时应在Heading-1 <div>之前放置新单词,而不是heading-3或Heading-2 <div>在预期输出中,我清楚地展示了我需要的输出内容。 - user4914689
3个回答

2

这个 是你想要的。

1)JQuery检查文档中的每个标题。
2)然后搜索父级是否有另一个标题。
3)如果在父级之前没有标题,则将内容添加到该标题之前。

$(document).find('h1, h2, h3, h4, h5, h6').each(function() {
    if ($(this).parent().prev().is('h1, h2, h3, h4, h5, h6') != true) {
        $(this).parent().before('<p>xxxxxxx</p>');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<DIV>
<H3 CLASS="Heading-1">First Level Heading</H3>  
<DIV>
<H4 CLASS="Heading-2">Second Level Heading</H4>
<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<P CLASS="Tab-Text-7">Some Text Here</P>
</DIV>


<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
Some Cotents Here
</TD>
</TR>
</TABLE>
</DIV>


<div>
<H6 CLASS="Heading-3">Third Level Heading</H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1"class="green1">   
Some text goes here
</TD>
</TR>
</TABLE>
</DIV>


<div>
<H6 CLASS="Heading-3">Third level Heading</H6>
<DIV>
<H6 CLASS="Heading-4">Fourth Level Heading </H6>
Some Text Goes here
</DIV></DIV>


<DIV>
<H4 CLASS="Heading-2">Second Level Heading</H4>
<DIV>
<H6 CLASS="Heading-3">Third Level Heading   </H6>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1" class="blue1">
SOme text goes here
</TD>
</TR>
</TABLE>
</DIV>


<DIV>
<H6 CLASS="Heading-3">Third Level Heading</H6>
Some text goes here
</DIV>


嘿,@Aramil,你没有理解我的问题。你把xxxxx放在每个级别之后,而不是放在第一级别。 - user4914689
我粘贴了代码的旧版本,请现在检查一下。如果这不是你想要的,那么我误解了。 - Aramil Rey
1
谢谢@Aramil Rey,它有效了。你做得很好,伙计。你真的做了一项令人赞赏的工作。非常感谢。 - user4914689

1
我认为你需要这段代码。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<body>
  <DIV class="Find-Me">
    <H3 CLASS="Heading-1">First Level Heading</H3>  
    <DIV>
      <H4 CLASS="Heading-2">Second Level Heading</H4>
   <DIV>
   <H6 CLASS="Heading-3">Third Level Heading</H6>
   <P CLASS="Tab-Text-7">Some Text Here</P>
  </DIV>

  <DIV class="Find-Me">
   <H6 CLASS="Heading-3">Third Level Heading</H6>
   <TABLE>
     <TR>
      <TD ROWSPAN="1" COLSPAN="1">
       Some Cotents Here
      </TD>
     </TR>
   </TABLE>
</DIV>
  <script>
    function Insert() {
      $('<p>xxxx</p>').insertBefore('.Find-Me');
    }
    Insert();
    </script>
</body>


在这里,您已经分配了新的类名给Div。但是如果不分配该类别,我需要找到并放置新单词。请问您能帮助我吗?不用将该类别分配给div。 - user4914689

0
$('body > div').has([class^='Heading-']).prepend('XXXXXX');

谢谢你的回答,但你能否在 fiddle 上解释一下? - user4914689
你还没有设置一个fiddle。此外,你的HTML结构有问题。你有比关闭</DIV>标签更多的开放性<DIV>标签。 - connexo
它不起作用,你能否请教我如何使用它? - user4914689

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接