Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jquery .siblings不起作用

jquery .siblings不起作用
EN

Stack Overflow用户
提问于 2010-05-07 14:06:39
回答 2查看 1.3K关注 0票数 0

您好,我想当one #框打开时,其他#框关闭。

Html:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="main">
    <div id="link">click</div><!--/*div*/-->
    <div id="box">content1</div><!--/*div*/-->
</div><!--/*div*/-->
<div id="main">
    <div id="link">click2</div><!--/*div*/-->
    <div id="box">content2</div><!--/*div*/-->
</div><!--/*div*/-->
<div id="main">
    <div id="link">click3</div><!--/*div*/-->
    <div id="box">content3</div><!--/*div*/-->
</div><!--/*div*/-->

Jquery:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript"> 
$(document).ready(function(){
$('#main #box').css('display', 'none')

$('#main #link').click(function() {
    $(this).next('#main #box').slideToggle('slow')
    .siblings('#main #box:visible').css('display', 'none');
    });
});
</script>

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-07 14:09:57

ID应该是每页只有一个。

你不应该重用"main“。

相反,可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="main">
   <div class="link">click</div><!--/*div*/-->
   <div class="box">content1</div><!--/*div*/-->
</div><!--/*div*/-->
<div class="main">
   <div class="link">click2</div><!--/*div*/-->
   <div class="box">content2</div><!--/*div*/-->
</div><!--/*div*/-->
<div class="main">
   <div class="link">click3</div><!--/*div*/-->
   <div class="box">content3</div><!--/*div*/-->
</div><!--/*div*/-->

然后,您可以像这样更改您的javascript:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
 $('.main .box').css('display', 'none')

 $('.main .link').click(function() {
   $(this).next('.box').slideToggle('slow')
   .siblings('.box:visible').css('display', 'none');
 });
});

请记住,您正在处理.box的兄弟对象,因此不需要再次指定.main。您实际上是在寻找main的兄弟,它们被称为class='box:visible'

我可能会建议,除非确实需要,否则可能不需要main类。相反,你的代码结构应该是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id='main'>
  <div>
     <div class="link">click</div><!--/*div*/-->
     <div class="box">content1</div><!--/*div*/-->
  </div>
  <div>
     <div class="link">click2</div><!--/*div*/-->
     <div class="box">content2</div><!--/*div*/-->
  </div>
  <div>
     <div class="link">click3</div><!--/*div*/-->
     <div class="box">content3</div><!--/*div*/-->
  </div>
</div>

然后,您的javascript (编辑)如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(document).ready(function(){
   $('#main .box').css('display', 'none')

  $('#main .link').click(function() {
    // this will work, but the code below is smoother      
    // $('#main .box').css('display', 'none'); 
    $('#main .box').hide('slow'); // hide smoothly
    $(this).next('.box').slideToggle('slow');
  });
}); 

这样做的原因有两个。首先,it在DOM中的查找速度更快,并且它为文档提供了一种结构。因为不应该重用ID,所以页面上只有一个主元素。

但是,在看不到其余代码的情况下,我不能保证这将工作(或破坏)您的布局。

票数 4
EN

Stack Overflow用户

发布于 2010-05-07 14:08:39

您需要使用类而不是ids。每页只能有一个唯一的id。

HTML:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="main">
    <div class="link">click</div><!--/*div*/-->
    <div class="box">content1</div><!--/*div*/-->
</div><!--/*div*/-->
<div class="main">
    <div class="link">click2</div><!--/*div*/-->
    <div class="box">content2</div><!--/*div*/-->
</div><!--/*div*/-->
<div class="main">
    <div class="link">click3</div><!--/*div*/-->
    <div class="box">content3</div><!--/*div*/-->
</div><!--/*div*/-->

Jquery:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script type="text/javascript"> 
$(document).ready(function(){
$('.main .box').css('display', 'none')

$('.main .link').click(function() {
    $(this).next('.main .box').slideToggle('slow')
    .siblings('.main .box:visible').css('display', 'none');
    });
});
</script>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2789149

复制
相关文章
jsp码头船只出行及配套货柜码放管理系统的设计与实现
基本功能包括:用户登录、修改个人信息、查看码头信息;系统管理人员管理;船只信息管理;船只路线信息管理;货柜信息管理等。本系统结构如下: (1)用户登录模块:   该模块分为三中用户的登录:   1、一般(查看)用户,权限只有修改个人信息和查看功能   2、(操作)用户登录,可以修改自己的信息,还可以对系统内容进行增加、删除和修改   3、系统管理员,可以修改自己的信息,并且不仅有查看、增删改的基本权限,还有对用户的管理和注册权限
程序员小藕
2020/07/28
6730
智慧路灯杆助力打造无人智慧码头
海运是全球物流运输的最重要的方式,而码头港口则承载了海运货轮带来的巨量货物吞吐,成为物流集散的重要枢纽,作业效率和运营效率也就显得非常关键。随着5G、物联网、边缘计算等技术的广泛应用,港口码头的建设和改造也不断向着智能化、无人化、数字化迈进。
智慧物联小马
2022/11/24
6250
智慧路灯杆助力打造无人智慧码头
CentOS系统优化
1、内核优化 ECHOSTR='net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time =600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_m
@凌晨
2021/01/07
7760
Centos系统安装
电脑系统重装Linux系统用于局域网内网开发swoole 镜像下载 直接centos官网下载镜像 镜像列表 制作ios启动盘 下载UltraISO并安装(试用版既可以) 打开软件 Ctrl + O
北溟有鱼QAQ
2020/08/13
1.5K0
ffmpeg为AVPacket添加解码头信息
FFmpeg解码获得的AVPacket只包含视频压缩数据,并没有包含相关的解码信息 (比如:h264的sps pps头信息,AAC的adts头信息),没有这些编码头信息解 码器(MediaCodec)是识别不到不能解码的。在FFmpeg中,这些头信息是保存 在解码器上下文(AVCodecContext)的extradata中的,所以我们需要为每一种 格式的视频添加相应的解码头信息,这样解码器(MediaCodec)才能正确解析 每一个AVPacket里的视频数据。
曾大稳
2018/09/11
6.7K0
ffmpeg为AVPacket添加解码头信息
海上石油钻井平台与码头钢桩阴极保护系统的安装
主要的施工工序(水下安装设备、水上电缆桥架安装、套管固定、电缆敷设等)均要在码头下方进行,施工时受海浪、潮汐影响较大施工难度高。因此在制定施工工艺及工艺流程时对环境情况进行了充分的考虑,杂散电流干扰, 所有钢管桩与混凝土内的钢筋均需保证电连接成一个整体。
刘珍
2022/09/14
4420
海上石油钻井平台与码头钢桩阴极保护系统的安装
Centos系统安装docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
宋天伦
2020/07/16
1.1K0
centos同步系统时间
命令:ntpdate ntp.api.bz 部分VPS可能需要修复服务器时区问题: echo 1 > /proc/sys/xen/independent_wallclock 在/etc/sysctl.conf中添加一行xen.independent_wallclock = 1(此行部分VPS不需要) 开机自动同步时间: 写个脚本: ntp.cron #!/bin/bash /usr/sbin/ntpdate ntp.api.bz | logger -t NTP 将该脚本 放到/etc/cron
用户2135432
2018/06/04
1.5K0
CentOS 系统日志清理
随着系统的日益复杂, aliyun空间捉襟见肘,常常报系统磁盘空间超过80%, 甚是苦恼.
louiezhou001
2022/02/23
2.6K0
CentOS 系统日志清理
Centos系统进程管理
程序: 二进制文件,静态 /bin/date, /usr/sbin/httpd,/usr/sbin/sshd, /usr/local/nginx/sbin/nginx 。
胡齐
2019/11/12
8690
VirtualBox安装CentOS系统
虚拟机软件下载地址: https://www.virtualbox.org/wiki/Downloads
ianzhi
2019/07/31
1.4K0
VirtualBox安装CentOS系统
centos系统安装git
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/16
8840
centos系统安装git
centos系统安装Python
CentOS 6.5安装Python2.7.14 大家好,周五到了,明天终于可以好好的放松一下了,而且,还是三天的长假哦!自从毕业以后再也没有超过七天的假期了。。终于知道以前为什么那么多人说还是上学好。。今天说一下如何在raksmart服务器centos6.5系统安装Python2.7.14。 首先查看当前系统中的 Python 版本 python --version 返回 Python 2.6.6 为正常。 检查 CentOS 版本 cat /etc/RedHat-release 返回 CentOS re
企鹅号小编
2018/01/19
1.1K0
centos系统安装Python
全球首个零碳码头智慧绿色能源系统在天津港并网发电
能源结构变革和转型是中国实现“双碳”目标的必经之路。大力发展以风电、光伏为主体的新能源,成为绿色电力的基础,力推以电为中心的综合能源服务,打造智慧能源管理平台。
万物皆可视
2022/05/13
9480
全球首个零碳码头智慧绿色能源系统在天津港并网发电
Centos 系统安装 NPM
1.下载 cd home wget https://nodejs.org/dist/v14.18.1/node-v14.18.1-linux-x64.tar.xz 2.解压 tar -xvf node-v14.18.1-linux-x64.tar.xz 3.配置环境变量 vim /etc/profile 在文件最后添加以下配置: #Node export NODE_HOME=/home/node-v14.18.1-linux-x64 export PATH=$NODE_HOME/bin:$PATH 4.刷新
灰太狼学Java
2022/06/17
1.7K0
neokylin 系统_centos kde
使用的虚拟机工具是VMware 虚拟机远程控制工具MobaXterm 操作系统:NeoKylin操作系统,(GUI,桥接模式)
全栈程序员站长
2022/09/22
1.3K0
neokylin 系统_centos kde
Centos学习笔记—系统引导
1.固件firmware(cmos,bios)-》post加点自检 2.自举程序Bootloader(grub)-》载入内核 3.载入内核                  -》驱动硬件 4.启动进程init              -》系统启动的第一个进程 5.读取执行配置文件 /etc/inittab
流川疯
2019/01/18
6610
CentOS 7.4和CentOS 6.9系统重置ROOT密码
CentOS 7 ROOT密码的重置方式和CentOS 6完全不一样,以进入单用户模式修改ROOT密码为例。
子润先生
2021/06/29
2.6K0
CentOS怎样查看系统信息
一、查看系统版本和核心版本 1 登陆CentOS,启动终端。 2 登陆root帐户,输入 cat  /etc/redhat-release,即可显示系统版本。 3
庞小明
2018/03/07
3.4K0
CentOS怎样查看系统信息
Centos系统修改时区
今天在操作系统的时候创建了一个文件,ls了一下发现时间和本地时间不对,date看了一下后发现时区是EDT(Eastern Daylight Timing)指美国东部夏令时间)。时区这玩意,百年难得修改一次,几乎算是最不常用的操作了(除了运维NTP服务器的大神们),记录一下。 [root@dbback ~]# date Mon Mar 27 01:26:48 EDT 2017 一、设置Centos系统的时区 输入命令: tzselect 依次输入:5)Asia → 9)china → 1)eas
行 者
2018/03/26
2.6K0
Centos系统修改时区

相似问题

centos 7安装码头失败

20

如何在CentOS上安装码头?

10

无法将码头安装到centos 6.1

10

基于CentOS的系统服务

10

CentOS 8系统-配置-用户

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文