获取被点击元素的索引

时间:2011-03-14 21:22:41

标签: dom indexing

嗨,我有这个代码。我需要获得被点击元素的基于0的索引。

这是我的代码。我总是得-1作为索引。 理想情况下,单击第一个链接将打印0,第二个将打印1。 我正在使用jquery 1.3.2。 JavaScript代码也很好。

我缺少什么?

<script type="text/javascript">
function handleClick(id) {         
         var par = document.getElementById('par'+id);         
         alert('Index= ' + $('#clips').index(par));
      }
</script>

<div id="clips" style="clear:both">                                                   
         <div id="par30" class="alb rc32">
            <div class="fl rc32 thm">
               <a id="30" onclick="handleClick(30);">Link 1</a>
            </div>
         </div>
         <div id="par40" class="alb rc32">
            <div class="fl rc32 thm">
               <a id="40" onclick="handleClick(40);">Link 2</a>
            </div>
         </div>
         <div id="par50" class="alb rc32">
            <div class="fl rc32 thm">
               <a id="50" onclick="handleClick(50);">Link 3</a>
            </div>
         </div>                                         
      </div>

2 个答案:

答案 0 :(得分:1)

这有效:

<script type="text/javascript">
    function handleClick(id) {
        var $par = $('#par' + id);
        alert($par.index());
    }

    <div id="clips" style="clear:both">                                                   
     <div id="par30" class="alb rc32">
        <div class="fl rc32 thm">
           <a href="javascript:void(0);" id="30" onclick="handleClick(30);">Link 1</a>
        </div>
     </div>
     <div id="par40" class="alb rc32">
        <div class="fl rc32 thm">
           <a href="javascript:void(0);" id="40" onclick="handleClick(40);">Link 2</a>
        </div>
     </div>
     <div id="par50" class="alb rc32">
        <div class="fl rc32 thm">
           <a href="javascript:void(0);" id="50" onclick="handleClick(50);">Link 3</a>
        </div>
     </div>                                         
  </div>

答案 1 :(得分:0)

您使用的索引功能错误。

尝试

<script type="text/javascript">
function handleClick(id) {         
         var par = document.getElementById('par'+id);         
         alert('Index= ' + $('#clips > div').index(par));
      }
</script>

请参阅http://api.jquery.com/index/

  

如果在集合上调用.index()   元素和DOM元素或   传递jQuery对象,.index()   返回一个表示的整数   传递元素的位置   相对于原始集合。