使用Javascript和getElementById显示DIV

displaying DIV using Javascript and getElementById

本文关键字:显示 DIV getElementById Javascript 使用      更新时间:2023-09-26

我有以下HTML:

<HTML>
<HEAD>
    <TITLE>GPM ConnectionModul Systems Configuration</TITLE>
    <LINK rel="stylesheet" href="GPM_SFTPConnector.css" type="text/css">
    <script>

        function systemAnzeigen(systemid) {
            var elms = document.getElementsByClassName("connectionClass");
            for (i = 0; i < elms.length; i++) {
                if (elms.item(i).id == systemid) {
                    elms.item(i).style.display = 'block';
                } else {
                    elms.item(i).style.display = 'none';
                }
            }
        }

        function systemAendern(systemid) {
            alert("System aendern: " + systemid);
        }
        function systemLöschen(systemid) {
            alert("System loeschen: " + systemid);
        }
    </script>
</HEAD>
<BODY>
    <strong>Error listing systems: </strong> [ISC.0049.9009] Missing required property switch at 'unlabeled BRANCH'<P>
        <strong>Konfigurierete Systeme</strong>
        <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
            <TR>
                <TH>System-ID</TH>
                <TH>Ändern</TH>
                <TH>Löschen</TH>
            </TR>
            <TR>
                <TD><a href="javascript:systemAnzeigen('system1');">system1</a></TD>
                <TD><img onclick="javascript: systemAendern('system1');" src="edit.gif" /></TD>
                <TD><img onclick="javascript: systemLoeschen('system1');" src="delete.gif" /></TD>
            </TR>
            <TR>
                <TD><a href="javascript:systemAnzeigen('system2');">system2</a></TD>
                <TD><img onclick="javascript: systemAendern('system2');" src="edit.gif" /></TD>
                <TD><img onclick="javascript: systemLoeschen('system2');" src="delete.gif" /></TD>
            </TR>
        </TABLE>

        <div class="connectionClass" id="system1" style="display: none;">
            <h4>system1</h4>
            <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
                <TR>
                    <TH>Connection-ID</TH>
                    <TH>Protokoll</TH>
                    <TH>Mapping</TH>
                </TR>
                <TR>
                    <TD>poller1</TD>
                    <TD>SFTP</TD>
                    <TD></TD>
                </TR>
                <TR>
                    <TD>soapConnection1</TD>
                    <TD>SOAP</TD>
                    <TD>mymapping</TD>
                </TR>
            </TABLE>
            <div class="connectionClass" id="system2" style="display: none;">
                <h4>system2</h4>
                <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
                    <TR>
                        <TH>Connection-ID</TH>
                        <TH>Protokoll</TH>
                        <TH>Mapping</TH>
                    </TR>
                    <TR>
                        <TD>RestConnection1</TD>
                        <TD>REST</TD>
                        <TD></TD>
                    </TR>
                </TABLE>
            </div>
    <P><a href="index.html">Home</a><P>

当单击名为"system1"的链接时,ID为"system 1"的DIV将完美显示。但是,单击名为"system2"的链接时,不会显示ID为"system 2"的DIV。

有人能解释一下,为什么这不起作用,以及如何使它起作用吗?

使用Visual Studio,它向我展示了

<div class="connectionClass" id="system1" style="display: none;">`

缺少它的结束标记</div>。我想你想把</div>放在system2标签之前:

<div class="connectionClass" id="system2" style="display: none;">

缺少标签将导致布局问题

要调试JavaScript,请确保使用浏览器控制台,在该控制台上会显示任何错误(按F12)

JavaScript对元音变音符没有任何理解。

因此,在JavaScript中,systemLoeschensystemLöschen是不相同的。

最好将函数名称保持为英文。部分是为了避免这样的问题(我不得不给很多法国程序员提供这个建议…),但也因为语言本身的关键词已经是英语了,坚持使用它是有意义的。

您从未关闭<div id="system1">标记,因此<div id="system2">实际上在内部。单击system2链接时,system1中的所有内容(包括system2)都将隐藏。

添加

</div>

之前

<div class="connectionClass" id="system2" style="display: none;">

<script>
  function systemAnzeigen(systemid) {
    var elms = document.getElementsByClassName("connectionClass");
    for (i = 0; i < elms.length; i++) {
      if (elms.item(i).id == systemid) {
        elms.item(i).style.display = 'block';
      } else {
        elms.item(i).style.display = 'none';
      }
    }
  }
  function systemAendern(systemid) {
    alert("System aendern: " + systemid);
  }
  function systemLöschen(systemid) {
    alert("System loeschen: " + systemid);
  }
</script>
</HEAD>
<BODY>
  <strong>Error listing systems: </strong> [ISC.0049.9009] Missing required property switch at 'unlabeled BRANCH'
  <P>
    <strong>Konfigurierete Systeme</strong>
    <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
      <TR>
        <TH>System-ID</TH>
        <TH>Ändern</TH>
        <TH>Löschen</TH>
      </TR>
      <TR>
        <TD><a href="javascript:systemAnzeigen('system1');">system1</a>
        </TD>
        <TD>
          <img onclick="javascript:systemAendern('system1');" src="edit.gif" />
        </TD>
        <TD>
          <img onclick="javascript:systemLoeschen('system1');" src="delete.gif" />
        </TD>
      </TR>
      <TR>
        <TD><a href="javascript:systemAnzeigen('system2');">system2</a>
        </TD>
        <TD>
          <img onclick="javascript:systemAendern('system2');" src="edit.gif" />
        </TD>
        <TD>
          <img onclick="javascript:systemLoeschen('system2');" src="delete.gif" />
        </TD>
      </TR>
    </TABLE>
    <div class="connectionClass" id="system1" style="display: none;">
      <h4>system1</h4>
      <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
        <TR>
          <TH>Connection-ID</TH>
          <TH>Protokoll</TH>
          <TH>Mapping</TH>
        </TR>
        <TR>
          <TD>poller1</TD>
          <TD>SFTP</TD>
          <TD></TD>
        </TR>
        <TR>
          <TD>soapConnection1</TD>
          <TD>SOAP</TD>
          <TD>mymapping</TD>
        </TR>
      </TABLE>
    </div>
    <div class="connectionClass" id="system2" style="display: none;">
      <h4>system2</h4>
      <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
        <TR>
          <TH>Connection-ID</TH>
          <TH>Protokoll</TH>
          <TH>Mapping</TH>
        </TR>
        <TR>
          <TD>RestConnection1</TD>
          <TD>REST</TD>
          <TD></TD>
        </TR>
      </TABLE>
    </div>
    <P><a href="index.html">Home</a>
      <P>

您的HTML标记是错误的。据我所见,它在"system1"div中渲染"system2",所以当你隐藏"system1"时,它也会隐藏它的子级("system2")

<TITLE>GPM ConnectionModul Systems Configuration</TITLE>
<script>
    function systemAnzeigen(systemid) {
        var elms = document.getElementsByClassName("connectionClass");
        for (i = 0; i < elms.length; i++) {
            if (elms.item(i).id == systemid) {
                elms.item(i).style.display = 'block';
            } else {
                elms.item(i).style.display = 'none';
            }
        }
    }
    function systemAendern(systemid) {
        alert("System aendern: " + systemid);
    }
    function systemLöschen(systemid) {
        alert("System loeschen: " + systemid);
    }
</script>
<BODY> <strong>Error listing systems: </strong> [ISC.0049.9009] Missing required property switch at 'unlabeled BRANCH'
    <P>
<strong>Konfigurierete Systeme</strong>
        <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
            <TR>
                <TH>System-ID</TH>
                <TH>Ändern</TH>
                <TH>Löschen</TH>
            </TR>
            <TR>
                <TD><a href="javascript:systemAnzeigen('system1');">system1</a>
                </TD>
                <TD>
                    <img onclick="javascript:systemAendern('system1');" src="edit.gif" />
                </TD>
                <TD>
                    <img onclick="javascript:systemLoeschen('system1');" src="delete.gif" />
                </TD>
            </TR>
            <TR>
                <TD><a href="javascript:systemAnzeigen('system2');">system2</a>
                </TD>
                <TD>
                    <img onclick="javascript:systemAendern('system2');" src="edit.gif" />
                </TD>
                <TD>
                    <img onclick="javascript:systemLoeschen('system2');" src="delete.gif" />
                </TD>
            </TR>
        </TABLE>
        <div class="connectionClass" id="system1" style="display: none;">
            
<h4>system1</h4>
            <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
                <TR>
                    <TH>Connection-ID</TH>
                    <TH>Protokoll</TH>
                    <TH>Mapping</TH>
                </TR>
                <TR>
                    <TD>poller1</TD>
                    <TD>SFTP</TD>
                    <TD></TD>
                </TR>
                <TR>
                    <TD>soapConnection1</TD>
                    <TD>SOAP</TD>
                    <TD>mymapping</TD>
                </TR>
            </TABLE>
        </div>
        
        <div class="connectionClass" id="system2" style="display: none;">
                <h4>system2</h4>
                <TABLE class="GPMTable" style="font-family:sans-serif;font-size:small">
                    <TR>
                        <TH>Connection-ID</TH>
                        <TH>Protokoll</TH>
                        <TH>Mapping</TH>
                    </TR>
                    <TR>
                        <TD>RestConnection1</TD>
                        <TD>REST</TD>
                        <TD></TD>
                    </TR>
                </TABLE>
            </div>