2011-03-14 162 views
0

嗨,我有這段代碼。我需要獲得點擊元素的基於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> 

回答

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() 返回一個整數,指示傳遞元素 相對於原始集合的 位置。

+0

有時很難成爲第一個答案!我將使用'#clips'的選擇器更改爲'#clips> div',然後使用該集合傳入要索引的特定對象來調用index。 Rob博士的回答也很好。 :) – Sam 2011-03-14 21:33:54

+0

我看到了錯誤。謝謝。 – kheya 2011-03-14 21:41:33

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

你對我來說太快了。 :)當談到快速回答問題時,這個網站看起來很有競爭力!雖然這很好。 – Sam 2011-03-14 21:37:12

+0

大聲笑 - 謝謝 - 請您將其標記爲答案,如果它是正確的。 – Rob 2011-03-14 21:38:05

+0

這可能適用於更高版本的jquery,而不是1.3 – kheya 2011-03-14 21:41:08