2014-01-14 48 views
0

以下是問題所在;我有一些像下面這樣的div,相同的類名,沒有id。我需要修改<h4>標記下方的<span>文本,這取決於這3幅圖像上鼠標光標的位置。我使用javascript,通過使用mouseenter()方法。問題在於該方法從整個網頁中更改每個跨文本文本,而不僅僅是鼠標光標所在的類名稱爲「parent」的類。如何在jQuery中選擇某個類

<div class="parent"> 
    <div class="parent.child"> 
     <a href="#"></a> 
     <div class="parent.chil.child"> 
      <div class="parent.chil.child.child"> 
       <img src ="link1" data-price="a"> 
       <img src ="link2" data-price="b"> 
       <img src ="link3" data-price="c"> 
      </div> 
     </div> 
    </div> 
    <h4> 
     <a href= "aspPage.aspx">text</a> 
    </h4> 
    <p><span class = "spanClassName">text to be changed</span>some text</p> 
    <div class=child1"></div> 
</div> 

我如何只選擇其中的鼠標在鏈接,從當前的「父」格,即使有幾個分度相同的類名,「父」。

我希望我能理解,如果不是的話,請問我試着解釋一下。

+0

你會這樣做你會用CSS。所以$('。parent> span.SpanClassName')。mouseenter(); – Cam

回答

1

您可以使用.closest()找到父與.parent

$('.parent\\.chil\\.child\\.child img').on('hover', function(){ 
    $(this).closest('.parent').find('.spanClassName').text($(this).attr('data-price')) 
}); 

DEMO

此外按照documents你需要在你選擇逃避.

使用任何薈萃(例如!「#$%&'()* +,。/:; < =>?@ [] ^`{| }〜)作爲名稱的文字部分,必須用兩個反斜槓進行轉義:\\。例如,id =「foo.bar」的元素可以使用選擇器$(「#foo \\。bar」)。

+0

這似乎是目前我的問題最接近的解決方案。我會在明天回去工作時嘗試實施它。謝謝。 – iusmar

+0

是的。它正在工作。我只需要這部分:[code] $(this).closest('。parent')。find('。spanClassName')... [/ code]。不知道如何找到我想要的DOM節點。謝謝你,謝謝大家。 – iusmar

0

如果您已經知道特定的父節點,只需使用parent.find('.spanClassName')即可。如果您沒有父節點,但您知道鼠標位於哪個鏈接,則可以使用link.closest('.parent').find('.spanClassName')

相關問題