私は自分の持っているものを説明し始めます。フィールドの「グループ」を持つページを使って作業しています。このグループ内には、「列」内のコンテンツを表す4つのフィールドがあります。このグループ内には、使用する列の数を尋ねる選択ボックスもあります。このページでは、複数の「グループ」を追加したり削除したりできます。私は必要なものJquery:要素のすべてのインスタンスに対して関数を繰り返します。
は、選択ボックスで選択した数に応じて、4列フィールドを表示/非表示ができるものです。私は負荷に示されているすべてのグループのために実行するスクリプトが必要
Group 1:
Number of Columns = 1 Column
Column 1 Content (shown)
Column 2 Content (hidden)
Column 3 Content (hidden)
Column 4 Content (hidden)
Group 2:
Number of Columns = 3 Column
Column 1 Content (shown)
Column 2 Content (shown)
Column 3 Content (shown)
Column 4 Content (hidden)
[add group]
、そして新しいグループが作成されるたびにいつでも選択ボックスを再度変更し、:
はそれは次のようになります。
これまでのところ私は、負荷の最初のグループ上で動作し、選択ボックスは、最初のグループに変更されるたびにスクリプトを持っています。私はそれも他のグループを反復する必要があります。 .each()やどこか別のものを使う必要があると確信していますが、どこに置くかわかりません。ここで
は私の現在のJSです:
$(function() {
var csColumns = $('select[name*="section_columns"]');
var csContent1 = csColumns.parents().eq(7).children('.panel-body').children('div:nth-child(5)');
var csContent2 = csColumns.parents().eq(7).children('.panel-body').children('div:nth-child(6)');
var csContent3 = csColumns.parents().eq(7).children('.panel-body').children('div:nth-child(7)');
var csContent4 = csColumns.parents().eq(7).children('.panel-body').children('div:nth-child(8)');
csColumnsValue();
csColumns.change(function() {
csColumnsValue();
});
function csColumnsValue() {
if (csColumns.val() == 'one') {
csContent2.hide();
csContent3.hide();
csContent4.hide();
} else if (csColumns.val() == 'two') {
csContent2.show();
csContent3.hide();
csContent4.hide();
} else if (csColumns.val() == 'three') {
csContent2.show();
csContent3.show();
csContent4.hide();
} else if (csColumns.val() == 'four') {
csContent2.show();
csContent3.show();
csContent4.show();
}
}
$(".repeater-add button").click(function() {
csColumnsValue();
});
});
JavaScriptが動作するHTMLを含め、ブラウザ操作に関する質問が必要な場合は、 [mcve]の作成方法を参照してください。 –
私はサムバタットの答えに基づいてhtmlとJSの密接な表現でjsfiddleを作成しました(残念ながらまだ動作しません)。私は次回にそれを含めます。 – BlueCaret