2016-07-26 18 views
-3

第一部分 < <解決使用$(this).index();jQuery計數當前div位置從許多其他

比方說,我有以下的div結構,其中父DIV沒有ID或類:

<div> 
    <div class="myClass"></div> 
    <div class="myClass"></div> 
    <div class="myClass"></div> 
    <div class="myClass"></div> 
    <div class="myClass"></div> 
    <div class="myClass"></div> 
</div> 

我怎樣才能使用jQuery用鼠標懸停在當前DIV位置的警報?例如:當我將鼠標懸停在第3個.myClass div上時,我想要收到「THIS IS DIV NUMBER 3」。

第二部分 而如果我有以下結構,其中$(本)的.index()總是返回零不管我徘徊哪一個?

<div> 
    <div class="myClass"></div> 
</div> 
<div> 
    <div class="myClass"></div> 
</div> 
<div> 
    <div class="myClass"></div> 
</div> 
<div> 
    <div class="myClass"></div> 
</div> 
<div> 
    <div class="myClass"></div> 
</div> 
+2

現在你可以看到TSUNAMI的答案....;) – Jai

回答

7

您可以在mouseenter()使用index()方法:

$('div.myClass').mouseenter(function() { 
 
    var idx = $(this).index() + 1; 
 
    $('#output').text('THIS IS DIV NUMBER ' + idx); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div class="myClass">div1</div> 
 
    <div class="myClass">div2</div> 
 
    <div class="myClass">div3</div> 
 
    <div class="myClass">div4</div> 
 
    <div class="myClass">div5</div> 
 
    <div class="myClass">div6</div> 
 
</div> 
 

 
<div id="output"></div>

對於你的第二個例子中,你將需要爲元素不是所有的兄弟姐妹提供一個選擇器index()

$('div.myClass').mouseenter(function() { 
 
    var idx = $(this).index('.myClass') + 1; 
 
    $('#output').text('THIS IS DIV NUMBER ' + idx); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div class="myClass">div1</div> 
 
</div> 
 
<div> 
 
    <div class="myClass">div2</div> 
 
</div> 
 
<div> 
 
    <div class="myClass">div3</div> 
 
</div> 
 
<div> 
 
    <div class="myClass">div4</div> 
 
</div> 
 
<div> 
 
    <div class="myClass">div5</div> 
 
</div> 
 

 
<div id="output"></div>

+0

感謝您的快速回復。它適用於第一種情況。我添加了第二個場景,其中index()總是相同的。你能幫忙嗎? – SoMeGoD

+0

我爲你更新了答案 –

+0

工程就像一個魅力。非常感謝你:) – SoMeGoD

1

$('.myClass').mouseenter(function() { 
 

 
    alert("This is din number " + ($(this).index()+1)) 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <div class="myClass">1</div> 
 
    <div class="myClass">2</div> 
 
    <div class="myClass">3</div> 
 
    <div class="myClass">4</div> 
 
    <div class="myClass">5</div> 
 
    <div class="myClass">6</div> 
 
</div>

使用.index()

+1

感謝您的快速回復。它適用於第一種情況。我添加了第二個場景,其中index()總是相同的。你能幫忙嗎? – SoMeGoD

+0

肯定給第二個場景更多細節 – guradio

1

可以使用index()功能:

$(document).on('mouseenter', '.myClass', function() { 
 
    alert($(this).index() + 1); 
 
});
.myClass { 
 
    padding:15px; 
 
    border:1px solid #d8d8d8; 
 
    margin:5px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<div> 
 
    <div class="myClass">1</div> 
 
    <div class="myClass">2</div> 
 
    <div class="myClass">3</div> 
 
    <div class="myClass">4</div> 
 
    <div class="myClass">5</div> 
 
    <div class="myClass">6</div> 
 
</div>

+0

你需要添加1到索引,因爲它的基於零 –

+0

OP想要得到3當懸停在div 3索引開始以0 – guradio

+0

謝謝,沒有注意到! – kapantzak

相關問題