您好,想求解一下siblings()的使用方法,有没有了解的?

.ctrl li里边都有一个box1(默认隐藏),点击某一个li则显示里面的box1,同时将其它li里边的box1隐藏起来,我是这样写的:
$(this).find(".box1").show().siblings().hide();
这句话应该没错呀,为何会无效的呢?

交互式爱情
浏览 212回答 3
3回答

PIPIONE

siblings()方法实例查找每个 p 元素的所有类名为 "selected" 的所有同胞元素:$("p").siblings(".selected")定义和用法siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的。语法.siblings(selector)参数 selector描述 字符串值,包含用于匹配元素的选择器表达式。详细说明如果给定一个表示 DOM 元素集合的 jQuery 对象,.siblings() 方法允许我们在 DOM 树中搜索这些元素的同胞元素,并用匹配元素构造一个新的 jQuery 对象。该方法接受可选的选择器表达式,与我们向 $() 函数中传递的参数类型相同。如果应用这个选择器,则将通过检测元素是否匹配该选择器对元素进行筛选。请思考这个带有基本的嵌套列表的页面:<ul><li>list item 1</li><li>list item 2</li><li class="third-item">list item 3</li><li>list item 4</li><li>list item 5</li></ul>如果我们从第三个项目开始,则可找到该元素的同胞元素:$('li.third-item').siblings().css('background-color', 'red');此处调用的结果是将项目 1、2、4 和 5 的背景设置为红色。 设置为红色背景。由于我们未应用选择器表达式,所有同胞元素很自然地成为了对象的一部分。如果已应用选择器,则只会包含四个列表中的匹配的项目。原始元素不包含在同胞元素中,当我们打算找到 DOM 树的特定层级上的所有元素时,记住一点很重要。

噜噜哒

$(this).find(".box1").show();$(this).siblings("li").find(".box1").hide();

眼眸繁星

虽然找到了解决方案,但我还是想解释下.....我认为这里siblings指代不明,它指代的不是$(this),而是$(this).find(".box1");应该重新定位到上次操作的元素slibings()前加.end();如果这个行不通就只能是分开写了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java
JQuery