2

我在包含许多部分元素的 div 上使用 jquery 可排序。我想使用 index() 来输出每个部分的位置。

index() 仅返回第一部分的值,但无法找到第二部分(或第三、第四等)

我不知道我在做什么错。任何帮助,将不胜感激。这是我的代码:

    <div id="existingquestions" class="sortable">
            <section class="question" id="question_777">
                <p id="positionof_777"></p>
                <p class="questiontext">question.text</p>
                <script>$(document).ready(function() {
                            var qpos = Number($('.sortable > section:visible').index('#question_777')+1);
                            $('#positionof_777').html(qpos);
                        });
                </script>
            </section>
            <section class="question" id="question_888">
                <p id="positionof_888"></p>
                <p class="questiontext">question.text</p>
                <script>$(document).ready(function() {
                        var qpos = Number($('.sortable > section:visible').index('#question_888')+1);
                        $('#positionof_888').html(qpos);
                    });
                </script>
           </section> 
    </div>

我正在使用的另一个功能工作得很好,尽管它与上面的基本相同:

    $(document).ready(function() {
        $('input').placeholder();
        $(".sortable > section:visible").hover(function() {
            var index = $(this).index()+1;
            $("#example_index").html("Index " + index);
        });
    });

我一无所知。在第一个示例中我做错了什么?

4

1 回答 1

1

这将按您的意愿工作:

<div id="existingquestions" class="sortable">
  <section class="question" id="question_777">
    <p id="positionof_777"></p>
    <p class="questiontext">question.text</p>
    <script>
        $(document).ready(function() {
            var qpos = $('.sortable > section:visible#question_777').index() + 1;
            $('#positionof_777').html(qpos);
        });
    </script> 
  </section>
  <section class="question" id="question_888">
    <p id="positionof_888"></p>
    <p class="questiontext">question.text</p>
    <script>
        $(document).ready(function() {
            var qpos = $('.sortable > section:visible#question_888').index() +1 ;
            $('#positionof_888').html(qpos);
        });
    </script> 
  </section>
</div>

工作样本

笔记

你不需要Number转换,.index()总是返回一个数字。

于 2012-08-16T14:25:08.550 回答