【问题标题】:Function to number paragraphs starting from a sibling从同级开始对段落进行编号的功能
【发布时间】:2014-08-19 06:52:55
【问题描述】:
<!-- html -->
<h1>Title 1</h1>
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>
<h1>Title 2</h1>
<p>paragraph 1</p>
<p>paragraph 2</p>
<p>paragraph 3</p>

<!--jQuery -->
$('#numPara').bind('click', function(){
    var i=0;
    var bouton = $(this);
    $('p').nextUntil('h1').each(function(index, element){
        console.log(element);
        $(element).prepend((index+1) + '.' + (index+1) + " ");
        bouton.attr('disabled', false);
        });

    });
}); 

问题:如何根据标题编号对段落进行编号?我已经“绑定”了我的按钮来为段落编号,但它不适用于每个部分的第一段,并且它不跟随标题的编号。老师告诉我应该限制,但是我已经找了几个小时了,我不知道该怎么做。感谢您的帮助。

Example : 1. Title1
          1.1 paragraph1
          1.2 paragraph2
          1.3 paragraph3
          2. Title2
          2.1 paragraph1
          2.2 paragraph2
          2.3 paragraph3

【问题讨论】:

  • 尝试改为执行$('h1').each,然后对每个h1,执行$(this).next('p').nextUntil('h1')
  • 你可以使用&lt;ol&gt;&lt;li&gt;

标签: javascript jquery html dom jquery-traversing


【解决方案1】:

鉴于该 html,当您需要运行脚本时,相应地放置此代码:

$('h1').each(function(hIndex, element){
    hIndex++;
    var next = $(this).next();
    var pIndex = 0;
    while (next.is('p')) {
        pIndex++;
        next.prepend(hIndex + '.' + pIndex + ' ');
        next = next.next();
    }
});

http://jsfiddle.net/z28KQ/

【讨论】:

  • 非常感谢...这是“var next = $(this).next();”我错过了......非常感谢......我现在明白了
  • @user2359135 很高兴我帮助了你!顺便说一句,如果这解决了您的问题,请选择此答案作为正确答案。
猜你喜欢
  • 2011-11-16
  • 1970-01-01
  • 2013-10-23
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 2020-08-30
  • 1970-01-01
相关资源
最近更新 更多