2017-09-23 83 views
0

如何将这两行合并为一行?如何将这两行jQuery合并为一个?

jQuery(".my-class").children(".open").show(); 
jQuery(".my-class").children(".closed").hide(); 

谢谢!

+0

为什么你需要将它们合并到GETHER? – twoleggedhorse

+2

较短的代码并不总是更好。这个更清晰,更易于理解。如果你想要一条线,那么把它作为一个函数,并在每次需要时调用它。 –

+0

你需要像这样的东西http://api.jquery.com/toggle/ –

回答

1

以防万一你需要的是切换此元素的可见性(备用取决于按钮点击,或类似的东西),你可以使用...

$('.my-class').children('.open,.closed').toggle() 

...但如果你只是想要显示.open并隐藏.closed,你的代码对我来说看起来不错。

1

感谢所有。 原因是,有时候jQuery(“。my-class”)可能会很长(如果我们有使用parent()或者以上的复杂搜索)。

我想我已经找到了一个很好的解决方案:

jQuery(".my-class").each(function(){ 
    jQuery(this).children(".open").show(); 
    jQuery(this).children(".closed").hide(); 
}) 

切换是一个很好的选择,但我的问题是比较通用的,不仅为.show()或.hide()

+0

此外,你可以随时计算一次并将它保存在一个变量中,然后你可以使用多次。 –

+0

这是对的,很好的解决方案,谢谢大家! – FunkycraM

1

您可以使用end()方法

试试这个:

jQuery(".my-class").children(".open").show().end().children(".closed").hide(); 
+0

太棒了!这就是我一直在寻找的,谢谢! – FunkycraM

+0

不客气... – mohammad