簡體   English   中英

我如何循環列表並在 JQuery 中的段落中添加上標

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

我是 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>

我試圖更改 JQuery,以便它附加到 class 頁腳,但它在兩個鏈接中將每次迭代顯示為 21,而不是第一個鏈接為 1,第二個鏈接為 2。

我嘗試只使用 (index) 而不是,但它顯示 10,但我希望它為第一個鏈接顯示 1,為第二個鏈接顯示 2 我知道當你使用索引時它會顯示數組 0 1 和行

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

只需將 1 添加到數組中即可計數 1 2。

您的代碼可以滿足您的需求。 但是順序是相反的,因為您 append 在.footer class 之后的每個sup - 因此在已經附加的sup之前。 您可以使用for循環來反轉所選腳注的順序:

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

如果你想分隔超級數字(可能用逗號),你可以使用一個三元運算符(一個壓縮的 if else 語句)到 append 那個分隔符,如果它不是最后一個元素(因為它是相反的,而不是第一個元素;) :

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

工作示例:

 $(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