javascript - jQuery显示所有子节点的方法

标签 javascript jquery

<a href="javascript:(void);" id="lnkP">show all children</a>
<a href="javascript:(void);" id="lnkC1">hide child 1</a>
<a href="javascript:(void);" id="lnkC2">hide child 2</a>

<div id="p" style="display:none;">
<div id="c1">child 1</div>
<div id="c2">child 1</div>...
</div>​

$("#lnkP").click(function(){
    $("#p").children().show(); //seems there's a problem here...
});
$("#lnkC1").click(function(){
   $("#c1").hide(); 
});
$("#lnkC2").click(function(){
   $("#c2").hide(); 
});​

jsFiddle:http://jsfiddle.net/CBGsF/1/

我想做的是:

  1. p 是父容器
  2. 点击show all children链接,显示 p
  3. 下的所有子 div
  4. 点击lnkC1lnkC2隐藏 单个子div

但似乎我没有让 .children() 正常工作。那么如何解决呢?有什么想法吗?

最佳答案

由于父级(#p 在您的情况下)有一个 display:none,它的子级将不可见。

您需要先显示父对象,

$("#p")
.show()
.children().show();

(jQuery 的链接,非常有帮助)

请尝试摆脱内联样式(一段时间后它变得难以管理),尽可能使用类。

你可以在 css 中有一个类,

.displayNone
{
    display: none;
} 
.displayBlock
{
   display: block;
}

然后使用 jquery 方法 .removeClass().addClass().toggleClass() 来显示/隐藏您的元素。

这只是一个建议:)

测试链接:http://jsfiddle.net/CBGsF/8/

关于javascript - jQuery显示所有子节点的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13757051/

相关文章:

javascript - "Element is not clickable at point (x,y)"。不可见元素覆盖按钮

用于大数据脚本执行的Javascript变量VS对象存储

jquery 脚本的 javascript 变量

javascript - 如何在AngularJS中检测互联网不可用

javascript - 不需要的显示 : none added automatically on class

javascript - 使用jquery从数组中删除特定值之后的所有值

javascript - 如何通过$http从AngularJs(前端)读取json数据到Grails(服务器端)

javascript - 使用自定义 JavaScript、WordPress 更改页脚区域中图像的 href

jquery - 如何将一个元素(在 jQuery 对话框内)放在它上面?

javascript - 哪些模式可以用于原型(prototype)继承而不能用于类?