首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在无序列表中访问同级<a>元素的CSS

无法在无序列表中访问同级<a>元素的CSS
EN

Stack Overflow用户
提问于 2012-12-10 02:52:02
回答 3查看 116关注 0票数 0

我有一个jQuery脚本,在大多数情况下都运行良好。我有一个链接列表,我点击这些链接来显示/隐藏特定的DIV元素。当我点击一个链接,它的CSS改变(颜色的链接更改为红色)。

代码语言:javascript
运行
复制
<ul style="list-style: none;">
    <li><a href="#" class="review-link" name="review-1">Click to see Review 1</a></li>
    <li><a href="#" class="review-link" name="review-2">Click to see Review 2</a></li>
    <li><a href="#" class="review-link" name="review-3">Click to see Review 3</a></li>
</ul>

jQuery

代码语言:javascript
运行
复制
$(".review-link").click(function () {
  var divname = this.name;
  $("#"+divname).show("slow").siblings().hide("slow");
  $(this).css("color","red");
  $(this).siblings().css("color","green")
});

我遇到困难的是让所有的,其他的链接复位到他们原来的颜色。在我的例子中,我试图将所有其他链接都转到颜色为绿色的地方,但我甚至无法做到这一点。也许我不理解jQuery中的“兄弟”属性?

下面是一个jsFiddle示例。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-10 02:54:09

.review-link元素没有兄弟姐妹。你想要它的父元素的兄弟姐妹。

你可以用这样的东西来代替。

代码语言:javascript
运行
复制
$(this).parent().siblings().find("a").css("color","green")
票数 2
EN

Stack Overflow用户

发布于 2012-12-10 02:55:04

onclick事件中,将所有链接设置为原始颜色,然后再执行其他操作。

代码语言:javascript
运行
复制
$(document).ready(function(){

    $(".review-link").css("color","green")
    $(".review-link").click(function () {
      var _this=$(this);            
       _this.closest("ul").find(".review-link").css("color","green");
       //your remaining code goes here
    });
});

工作样本http://jsfiddle.net/uCS3P/5/

票数 3
EN

Stack Overflow用户

发布于 2012-12-10 03:08:15

$.siblings()查找直接相关的元素。在本例中,$(this)指的是被单击的<a>元素,因为每个链接都嵌套在<li>标记中,所以它没有直接的兄弟节点。

$(this).parent().siblings().find('a').css("color","green");

$(this).parent().siblings().children('a').css("color","green");

会起作用的。

您可能需要考虑使用addClass和removeClass,而不是直接用jQuery更改css,这样可以保持标记和脚本的分离更完整。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13794343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档