如何在jQuery中选择某个类

时间:2014-01-14 17:51:15

标签: javascript jquery css html5 dom

这是问题;我有几个div,如下面的一个,相同的类名,没有id。我需要修改<span>标记下方的<h4>文本,具体取决于这3张图片上鼠标光标的位置。我使用javascript,使用mouseenter()方法执行此操作。问题是该方法改变了整个网页的每个跨区文本,而不仅仅是来自鼠标光标所在的类名为“parent”的类。

<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>

如果只有几个具有相同类名的div,“父”,我如何从curent“parent”div中仅选择鼠标所在的链接。

我希望我被理解,如果没有,请询​​问并尝试解释更多。

2 个答案:

答案 0 :(得分:1)

您可以使用.closest()查找.parent

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

DEMO

此外,根据documents,您需要在选择器中转义.

  

使用任何元字符(例如!“#$%&amp;'()* +,。/:;&lt; =&gt;?@ [] ^`{|}〜)作为文字作为名称的一部分,必须使用两个反斜杠进行转义:\\。例如,id =“foo.bar”的元素可以使用选择器$(“#foo \\。bar”)。

答案 1 :(得分:0)

如果您已经知道特定的父节点,请使用parent.find('.spanClassName')。如果您没有父节点,但知道鼠标所在的链接,则可以使用link.closest('.parent').find('.spanClassName')