span
私は要素のセットを持っています。一連の<div>
要素もあります。スパンをクリックすると、「無効」と見なされます。特に、「isdisabled」プロパティを配列に格納します(無効の場合はfalse 、それ以外の場合はtrue)。すべてのスパン要素は最初に有効になります。
各スパンには、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の各整数が、「無効」になっているスパンのデータコードに格納されているIDに対応している場合にのみ、divを非表示にできます。いくつかの必要な例:
- データコード1のスパンをクリックすると、最後のdivがに設定され
display:none
ます。 - 次に、 data-code 3でspanをクリックしても、data-lstのすべてのコードが無効になっているdivがないため(「1」、「3」、「1 3」など)、何も起こりません。
- 最後に、データコード2のスパンをクリックすると、3番目と4番目のスパンがに設定され
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を選択する必要があるということです。