通过选择带有Id的图像来更改带有Id的文本

时间:2016-08-02 09:05:50

标签: javascript jquery css image jquery-selectors

我有一个查询,当鼠标悬停在图像上时对列表项的文本进行更改,我在查询中放置了一个事件目标:

    $('img').on('mouseover', function(){
     // I would like an Id of a text instead of the 'li'
      $('li').css('text-decoration', 'underline');
    });

    $('img').on('mouseout', function(){
      $('li').css('text-decoration', 'none');
    });

但我希望将其更改为仅应用于与图像具有相同ID的项目:

s[i++] = '<li id=\"'+  vizList[j].name +'\">';
s[i++] =  '<a>'+ vizList[j].name + '</a>';
s[i++] =  '<img id=\"'+  vizList[j].name +'\" src="../renderer/bundles/' + vizList[j].icon + '" width="268" height="120" style="display:block"/>';
s[i++] = '</li>';

4 个答案:

答案 0 :(得分:5)

以下代码是您所期望的吗?

$('img').on('mouseover', function(event){
  $(event.target).closest('li').css('text-decoration', 'underline');
});

$('img').on('mouseout', function(event){
  $(event.target).closest('li').css('text-decoration', 'none');
});

答案 1 :(得分:4)

首先,ID应该是唯一的,因此要么使它们略有不同,要么使用类。

$('li')选择器更改为$(this).find('li')。这应该在悬停的li

中找到图像

您还可以使用.hover功能将其转换为一个电话:

https://jsfiddle.net/juk41yLs/1/

$('img').hover(
  function() {
    $(this).parent('li').css('text-decoration', 'underline');
  },
  function() {
    $(this).parent('li').css('text-decoration', 'none');
  }
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>
    Hover over this > 
    <img src="http://placehold.it/350x150">
  </li>
</ul>

答案 2 :(得分:0)

我假设您想要在鼠标悬停在li之上时更改img包含的img。然后你应该这样做:

$('img').on('mouseover', function(event){

    $(this).parent().css('text-decoration', 'underline');
});

答案 3 :(得分:-1)

&#13;
&#13;
   $('img').on('mouseover', function(event){
     // I would like an Id of a text instead of the 'li'
      var imgId = event.target.id;
      
      $('#' + imgId).css('text-decoration', 'underline');
    });
&#13;
&#13;
&#13;

相关问题