2017-05-08 3 views
0

私はJSテクノロジにはかなり新しく、同じ関数を何度も(たとえばループによって)作成することが可能かどうかを調べようとします。主な問題は、foreachループでボタンとチェックボックスを作成することです。問題はList listaに含まれる要素の数と、divコンテンツを表示するために必要なJS関数の数がわからないことです。だから、以下のようなコードでこの問題を解決する方法があるのですか、もしそうなら他のものを試してみるべきですか?JavaScriptで関数を乗算する方法

私は以下の私のコードの一部を配置します。

HTMLコード:

List<string> lista = ViewBag.Dane; 
<div id="myDropdown" class="dropdown-content"> 
@foreach (var elem in lista){ 
<label><input id="machine" type="checkbox" value="A" onchange="changeA()"/>choose all </label> 
<button id="buttonA" type="button" class="btn btn-primary" onclick="showDivsA()">@elem</button> 
<div id="myDropdownA" class="dropdown-content"> 
<label><input id="machine" type="checkbox" value="A" onchange="change()"/>choose all </label> 
<button id="buttonA" type="button" class="btn btn-primary" onclick="showDivsAa()">MachineB2</button> 
<div id="myDropdownAa" class="dropdown-content"> 
<!-- div's content --> 
</div></div> 

のJavaScriptコード:

function changeA() { 
if (document.getElementById('buttonA').disabled === true){ 
$('#buttonA').removeAttr('disabled');} 
function showDivsA() { 
if (document.getElementById('myDropdownA').style.display === "none") { 
     document.getElementById('myDropdownA').style.display = "block"; 
    } 
    else { 
     document.getElementById('myDropdownA').style.display = "none";} 

はあなたの助けのために事前にありがとうございます。

+0

代わりにCSSを使用してください。 – SLaks

+0

あなたはパラメータを探しています。 – SLaks

+0

関数のコピーを作成するのではなく、関数を再利用可能にする必要があります。 – epascarello

答えて

0

単一の関数を記述し、それに応じてHTMLからパラメータを渡します。たとえば、

// call this function like changeA('buttonA') from HTML 
function changeA(buttonIdStr) 
{ 
    if (document.getElementById(buttonIdStr).disabled === true) 
    { 
     $('#' + buttonIdStr).removeAttr('disabled'); 
    } 
} 

// call this function like showDivsA('myDropdownA') from HTML 
function showDivsA(dropDownIdstr) 
{ 
    if (document.getElementById(dropDownIdstr).style.display === "none") 
    { 
     document.getElementById(dropDownIdstr).style.display = "block"; 
    } 
    else 
    { 
     document.getElementById(dropDownIdstr).style.display = "none"; 
    } 
} 
+0

助けてくれてありがとう!できます! :) – Kodziks13

関連する問題