我对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";}
提前感谢您的帮助。
答案 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";
}
}