简体   繁体   English

我如何循环列表并在 JQuery 中的段落中添加上标

[英]How do i loop trough list and add a superscript to paragraph in JQuery

I'm new to JQuery i'm reading a book and i'm following the examples but i got stuck trying this:我是 JQuery 的新手,我正在读一本书,我正在按照示例进行操作,但我无法尝试这样做:

 $(document).ready(function () { var $notes = $('<ol id="notes"></ol>').insertAfter('#hexagon'); $('span.footnote').each(function (index) { $('<sup>' + (index + 1) + '</sup>').insertAfter('.footer'); $(this).appendTo($notes).wrap('<li></li>'); }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="cell"> <h1 id="f-title">Flatland: A Romance of Many Dimensions</h1> <div id="f-author">by Edwin A. Abbott</div> <h2>Part 1, Section 3</h2> <h3 id="f-subtitle">Concerning the Inhabitants of Flatland</h3> </div> <div id="excerpt" class="cell">an excerpt</div> <div class="chapter cell"> <p class="square">Our Professional Men and Gentlemen are Squares (to which class I myself belong) and Five-Sided Figures or <a href="http://en.wikipedia.org/wiki/Pentagon">Pentagons </a>.</p> <p id="hexagon" class="nobility hexagon">Next above these come the Nobility, of whom there are several degrees, beginning at Six-Sided Figures, or <a class="hexagon" href="http://en.wikipedia.org/wiki/Hexagon"><span class="footer">Hexagons</span></a>, and from thence rising in the number of their sides till they receive the honourable title of <a href="http://en.wikipedia.org/wiki/Polygon"><span class="footer">Polygonal</span></a>, or many-Sided. Finally when the number of the sides becomes so numerous, and the sides themselves so small, that the figure cannot be distinguished from a <a href="http://en.wikipedia.org/wiki/Circle">circle</a>, he is included in the Circular or Priestly order; and this is the highest class of all.</p> <br> <p> <blockquote class="pull-quote">It is a <span class="drop">Law of Nature</span> with us that a male child shall have one more side than his father, so that each generation shall rise (as a rule) one step in the scale of development and nobility. Thus the son of a Square is a Pentagon; the son of a Pentagon, a Hexagon; and so on. </blockquote> </p><br> </div> <div class="cell"> <span class="footnote">And how perfect a proof of the natural fitness and, I may almost say, the divine origin of thearistocratic constitution of the States of Flatland,</span> <span class="footnote">By a judicious use of this Law of Nature, the Polygons and Circles are almost always able to stifle sedition in its very cradle. taking advantage of the irrepressible and boundless hopefulness of the human mind;&hellip;</span> </div>

I tried to change the JQuery so it appends to the class footer but it shows the each iteration as 21 in both links instead of 1 for the first link and 2 for the second link.我试图更改 JQuery,以便它附加到 class 页脚,但它在两个链接中将每次迭代显示为 21,而不是第一个链接为 1,第二个链接为 2。

I tried using just (index) instead but it shows 10, but i want it to show 1 for the first link and 2 for the second link i kno that when you use index it will show the array 0 1 and the line我尝试只使用 (index) 而不是,但它显示 10,但我希望它为第一个链接显示 1,为第二个链接显示 2 我知道当你使用索引时它会显示数组 0 1 和行

$('<sup>' + (index + 1) + '</sup>').insertAfter('.footer');

just add 1 to the array to count 1 2.只需将 1 添加到数组中即可计数 1 2。

Your code does, what you want.您的代码可以满足您的需求。 But the order is reversed because you append each sup after the .footer class - and therefor BEFORE the sup that is already appended.但是顺序是相反的,因为您 append 在.footer class 之后的每个sup - 因此在已经附加的sup之前。 You could use a for loop to reverse the order of the selected footnotes:您可以使用for循环来反转所选脚注的顺序:

var footnotes = $('span.footnote');
  
for (i = footnotes.length - 1; i >= 0; i--) {...}

If you want the super numbers to be separated (maybe with a comma), you could use a ternary operator (a compressed if else statement) to append that separator if it's not the last element (becaue it's reverse, not the first element;):如果你想分隔超级数字(可能用逗号),你可以使用一个三元运算符(一个压缩的 if else 语句)到 append 那个分隔符,如果它不是最后一个元素(因为它是相反的,而不是第一个元素;) :

(i > 0 ? '' : ',')

Working example:工作示例:

 $(document).ready(function () { var $notes = $('<ol id="notes"></ol>').insertAfter('#hexagon'); var footnotes = $('span.footnote'); for(i = footnotes.length - 1; i >= 0; i--){ $('<sup>' + (i + 1) + (i > 0? '': ',') + '</sup>').insertAfter('.footer'); $(footnotes[i]).appendTo($notes).wrap('<li></li>'); } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="cell"> <h1 id="f-title">Flatland: A Romance of Many Dimensions</h1> <div id="f-author">by Edwin A. Abbott</div> <h2>Part 1, Section 3</h2> <h3 id="f-subtitle">Concerning the Inhabitants of Flatland</h3> </div> <div id="excerpt" class="cell">an excerpt</div> <div class="chapter cell"> <p class="square">Our Professional Men and Gentlemen are Squares (to which class I myself belong) and Five-Sided Figures or <a href="http://en.wikipedia.org/wiki/Pentagon">Pentagons </a>.</p> <p id="hexagon" class="nobility hexagon">Next above these come the Nobility, of whom there are several degrees, beginning at Six-Sided Figures, or <a class="hexagon" href="http://en.wikipedia.org/wiki/Hexagon"><span class="footer">Hexagons</span></a>, and from thence rising in the number of their sides till they receive the honourable title of <a href="http://en.wikipedia.org/wiki/Polygon"><span class="footer">Polygonal</span></a>, or many-Sided. Finally when the number of the sides becomes so numerous, and the sides themselves so small, that the figure cannot be distinguished from a <a href="http://en.wikipedia.org/wiki/Circle">circle</a>, he is included in the Circular or Priestly order; and this is the highest class of all.</p> <br> <p> <blockquote class="pull-quote">It is a <span class="drop">Law of Nature</span> with us that a male child shall have one more side than his father, so that each generation shall rise (as a rule) one step in the scale of development and nobility. Thus the son of a Square is a Pentagon; the son of a Pentagon, a Hexagon; and so on. </blockquote> </p><br> </div> <div class="cell"> <span class="footnote">And how perfect a proof of the natural fitness and, I may almost say, the divine origin of thearistocratic constitution of the States of Flatland,</span> <span class="footnote">By a judicious use of this Law of Nature, the Polygons and Circles are almost always able to stifle sedition in its very cradle. taking advantage of the irrepressible and boundless hopefulness of the human mind;&hellip;</span> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM