我有一组span
元素。我也有一组<div>
元素。当我点击一个跨度时,我认为它是“禁用的”。特别是,我将“禁用”属性存储在一个数组中(禁用为false,否则为true );所有 span 元素在开始时都启用。
每个跨度都有一个来自 DB 值的整数 id。我将此 id 存储在名为data-code的 HTML5 属性中。
每个 div 都有一个由空格分隔的整数列表。这些整数中的每一个都引用跨度的数据代码。它们存储在 div 属性data-lst中。
以下是可能的 HTML 代码示例:
<span data-code="1">A text</span>|<span data-code="2">Another txt</span>|<span data-code="3">Some text here</span>|<span data-code="4">bla bla</span>
<div data-lst="1 2 3 4">...</div>
<div data-lst="1 3 4">...</div>
<div data-lst="2 3">...</div>
<div data-lst="1 2 3">...</div>
<div data-lst="1">...</div>
当我单击一个跨度时,它会变为“禁用”,我必须检查是否可以隐藏某些 div(通过使用display:none
)。当且仅当data-lst中的每个整数对应于存储在“已禁用”的 span 的 data-code 中的 id时,才能隐藏 div 。一些必要的例子:
- 如果我单击带有data-code 1的跨度,则最后一个 div 设置为
display:none
. - 然后,如果我点击带有data-code 3的 span ,什么也不会发生,因为没有 div 中的所有代码都被禁用(例如“1”、“3”或“1 3”)。
- 最后,当我点击带有data-code 2的 span 时,第三个和第四个 span 设置为
display:none
.
我正在尝试使用选择器和JQuery将 display:none 设置为 div 以满足上述条件,但目前我没有找到解决方案。
代码的起始和平可能如下:
$(function(){
var enabled = new Array();
$('span').each(function(i){
enabled[i] = true;
$(this).click(function(){
//Set display:none to all the divs that satisfy the above criteria
functionX();
});
});
});
缺少的是functionX()
,应该选择与条件相对应的所有 div。