如何在JavaScript中乘以函数

时间:2017-05-08 16:47:00

标签: javascript html asp.net-core-mvc

我对JS技术很陌生,我试图弄清楚是否有可能多次创建相同的函数(例如在某些循环中)。主要问题是我在foreach循环中创建了按钮和复选框。问题是我不知道List lista中有多少个元素,以及显示div内容需要多少JS函数。那么有没有办法用下面的代码来解决这个问题,或者我应该尝试别的东西,如果是这样的话,请你给我一些建议我该如何解决呢?

我将部分代码放在下面:

HTML code:

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";}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分: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";
   }
}