隐藏所有没有类匹配所选元素的元素
Hide all elements that don't have class matching selected element
我有一个很酷的界面要构建。
有一个水平滚动div 包含图像的"磁贴",每个磁贴下都有一个单选按钮。用户将滚动并决定图像,然后单击它。单选按钮检查,jQuery 在下面显示另一个 horiz 滚动div,"现在选择子类别"......然后,用户可以通过选择另一个"磁贴"来进一步细化选择。这个过程就完成了。
问题是我不确定如何隐藏第二层选择中的所有元素,如果它们没有与第一个选择匹配的类。听起来可能令人困惑。这里有一些简化的HTML,我已经把它发布在jsfiddle上以节省这里的空间。http://jsfiddle.net/RTGC3/
因此,总而言之,您将从HTML中看到需要发生的情况。用户将看到类别,当他们单击类别时,与单击的父类别没有相同ID的子类别将被隐藏。所有其他内容将保持可见,以便包含div "显示"。
我希望我已经很好地解释了这个问题。感谢您提供的任何帮助。
话筒。
尝试使用以下代码:
$(document).ready(function() {
$('input[type=radio][name="type"]').live('change', function() {
var className = $(this).parent().attr("class");
var clsID = className.split('_')[2];
var subID = "in_cat_" + clsID;
$("div[class*=in_cat]").hide();
$("div." + subID).toggle("slow");
});
});
这是 JSFiddle 链接:http://jsfiddle.net/RTGC3/3/
最简单的方法是,例如,将两个 id 为 1 的容器div 命名为同一事物,因此您将有两个 class="cat_id_1"。
然后像这样:
$('#cat-container div input').on('change', function() {
var id = $(this).parent().attr('class');
$('#des-container div.'+id).fadeToggle();
});
在CSS中,你有display:none; 在 #des 容器中的所有div上(对于初学者(。这将在单选按钮更改时侦听它,第一次更改它将在div 上调用 .fadeToggle(( 并在第二行中匹配类并显示它,第二次更改将再次隐藏它。
这是你想要的吗?
实际上,我希望显示第二行中的所有项目,但是在选中单选框时,您想隐藏除与单选按钮ID匹配的项目之外的所有内容?然后你可以这样做:
$('#des-container div'+id).addClass('show');
$('#des-container div').not('div.show').fadeToggle();
所以基本上你向你决定显示的对象添加一个类,并隐藏所有没有该类的东西。 当然,要以另一种方式工作(如果您取消选中单选框(,您需要添加一个 if 语句,看到已更改的单选按钮已更改为选中或未选中,如果未选中,您只需从元素中删除类"show"。
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 有没有比在本例中使用matchMedia更聪明的方法来重新排列页面元素
- 有没有办法将选择器返回到元素?是$(这个)还是其他方法
- 有没有办法用Javascript找到元素的事件处理程序
- IOS自动化:有没有办法;刷新'元素树(或者Instruments'认为可以访问和不能访问的任何内容)
- VBA中有没有一种方法可以获取javascript生成的元素
- Protractor:有没有办法在之前定位的元素上使用element.all
- 有没有一种方法可以在jQuery中只选择匹配的元素而不选择它们的子元素
- 有没有更好的方法来访问用JQuery选择器选择的第一个元素
- 有没有办法只替换页面上所有元素的innerText
- JavaScript - 有没有办法在应用假设的 CSS 样式后获取元素的 offsetTop
- 有没有一种通用方法可以通过Javascript访问没有id的DOM元素
- JavaScript - 有没有更有效的方法来创建选项元素
- 有没有办法在没有单独对象的情况下克隆 DOM 元素
- 有没有一种纯粹的Javascript方法可以将一个函数应用于多个元素的事件
- 有没有更简单的方法来检查某个父元素的 N 个子元素是什么
- 有没有一种简单的方法来检测容器元素中的焦点变化
- 有没有办法知道特定元素存在于其他 html 页面中
- 有没有其他方法可以选择HTML元素
- 如何在使用 javascript 声明 var 之前检查元素有或没有