Jquery“突出显示”具有相同类的元素

发布于 2024-10-13 05:53:20 字数 548 浏览 4 评论 0原文

我正在尝试实现这一点:

我有类似的东西:

<ul>
<li><a href="#" class="class-1">Link 1</a></li>
<li><a href="#" class="class-2">Link 2</a></li>
<li><a href="#" class="class-3">Link 3</a></li>
</ul>

<img src="img-desc.jpg" class="class-1" />
<img src="img-desc-1.jpg" class="class-2" />
<img src="img-desc-2.jpg" class="class-3" />

我希望每次用户将鼠标移到 ul>li 之一上时,具有匹配类的图像都会获得红色边框。我怎样才能做到这一点?

非常感谢大家,我希望你们能帮助我解决这个问题。

i'm trying to acchive this:

I have something like:

<ul>
<li><a href="#" class="class-1">Link 1</a></li>
<li><a href="#" class="class-2">Link 2</a></li>
<li><a href="#" class="class-3">Link 3</a></li>
</ul>

<img src="img-desc.jpg" class="class-1" />
<img src="img-desc-1.jpg" class="class-2" />
<img src="img-desc-2.jpg" class="class-3" />

I want that everytime the user pass the mouse over one of the the ul>li the image with the matching class gets a red border. How can I acchieve this??

Thanks so much to everyone, I hope you can help me out with this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪漫之都 2024-10-20 05:53:20

您可以这样做:

示例: http://jsfiddle.net/Q7knH/

$('ul > li').hover(function() {
    $('img.' + $(this).children('a').attr('class') ).css('border','2px solid red');
},function() {
    $('img.' + $(this).children('a').attr('class') ).css('border','');
});

或者,如果您确定

  • 元素的 周围不会有任何空格,则可以将其缩短一点:
  • 示例: http://jsfiddle.net/Q7knH/1/

    $('ul > li').hover(function() {
        $('img.' + this.firstChild.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.firstChild.className ).css('border','');
    });
    

    或者如果您希望将鼠标悬停在 上,然后执行以下操作:

    示例:

    $('ul > li > a').hover(function() {
        $('img.' + this.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.className ).css('border','');
    });
    

    You could do this:

    Example: http://jsfiddle.net/Q7knH/

    $('ul > li').hover(function() {
        $('img.' + $(this).children('a').attr('class') ).css('border','2px solid red');
    },function() {
        $('img.' + $(this).children('a').attr('class') ).css('border','');
    });
    

    or if you're certain that the <li> elements won't have any whitespace around their <a>, you could make it a little shorter:

    Example: http://jsfiddle.net/Q7knH/1/

    $('ul > li').hover(function() {
        $('img.' + this.firstChild.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.firstChild.className ).css('border','');
    });
    

    Or if you wanted the hover to take place on the <a>, then do this:

    Example: http://jsfiddle.net/Q7knH/3/

    $('ul > li > a').hover(function() {
        $('img.' + this.className ).css('border','2px solid red');
    },function() {
        $('img.' + this.className ).css('border','');
    });
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文