用于don'的javascript;我不能换班

用于don'的javascript;我不能换班,javascript,class,for-loop,frontend,Javascript,Class,For Loop,Frontend,我正在尝试为此代码构建JavaScript函数,但单击时: <input class="boton" type="button" onclick="VerConsultas('BusquedaPorFecha', 'ConsultasEmpleado');" value="Busqueda por Fecha" /> Html输入 <nav id="TopNavigator"> <input class="boton" type="button" onc

我正在尝试为此代码构建JavaScript函数,但单击时:

<input class="boton" type="button" onclick="VerConsultas('BusquedaPorFecha', 'ConsultasEmpleado');" value="Busqueda por Fecha" />
Html输入

<nav id="TopNavigator">
     <input class="boton" type="button" onclick="VerConsultas('AltaEmpleado', '');" value="Alta Empleado" />
     <input class="boton" type="button" onclick="VerConsultas('BajaEmpleado', '');" value="Baja Empleado" />
     <input class="boton" type="button" onclick="VerConsultas('ModificarEmpleado', '');" value="Modificar Empleado" />
     <input class="boton" type="button" onclick="VerConsultas('ConsultasEmpleado', '');" value="Consultas Empleado" />
</nav>
<nav id="ConsultasEmpleado" class="hide">
     <asp:Button ID="Todos" runat="server" Text="Mostrar Todos los empleados" OnClick="TodosEmpleados" /><br />
     <input class="boton" type="button" onclick="VerConsultas('BusquedaPorFecha', 'ConsultasEmpleado');" value="Busqueda por Fecha" />
     <input class="boton" type="button" onclick="VerConsultas('BusquedaPorCategoria', 'ConsultasEmpleado');" value="Busqueda por Categoria" />
     <input class="boton" type="button" onclick="VerConsultas('BusquedaPorDepartamento', 'ConsultasEmpleado');" value="Busqueda por Departamento" />
     <input class="boton" type="button" onclick="VerConsultas('BusquedaPorSalario', 'ConsultasEmpleado');" value="Busqueda por Salario" />
</nav>
<div class="hide" id="BusquedaPorFecha">
     Insertar una fecha
</div>
<div class="hide" id="BusquedaPorCategoria">
     Seleccione una Categoría
</div>
<div class="hide" id="BusquedaPorDepartamento">
     Seleccione un Departamento
</div>
<div class="hide" id="BusquedaPorSalario">
     Inserte un salario desde el que iniciar la búsqueda
</div>


您的问题是
文档。GetElementsByCassName
返回一个
HTMLCollection
,当DOM更改时会更新它,因此当您应用
.hide
类时,节点会从集合中删除

您可以只使用
document.querySelector(“.visible”)
,它返回节点列表,但速度较慢(尽管我们在这里讨论的是毫秒)

还可以将其转换为数组以防止其更新,如下所示:

var visible = document.getElementsByClassName("visible"); //collection
    visible = [].slice.call(visible); //array
还有几点,您不应该像那样使用内联javascript,最好将脚本文件和结构文件分开

为此,我对您的代码做了一些修改

投入
希望有帮助:)

因此,您可以向我们展示函数
divView
,然后单击执行
VerConsultas
。你想让我们想象一下
VerConsultas
code?对不起,divView和VerConsultas是同一个函数,我在这里试图理解,你到底想要实现什么?当点击按钮时,一般来说会发生什么?谢谢pd:顺便说一句,我懂西班牙语。你能在jsfiddle或jsbin.com上发布一个演示吗?@undefined intent que la función haga algo bastante simple en princiio。脉冲星是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素,可见光是一种视觉元素。(感谢您的帮助,我将独自一人在“卡帕”村享受“卡帕”村和“卡帕”村的生活。)
<div class="hide" id="BusquedaPorFecha">
     Insertar una fecha
</div>
<div class="hide" id="BusquedaPorCategoria">
     Seleccione una Categoría
</div>
<div class="hide" id="BusquedaPorDepartamento">
     Seleccione un Departamento
</div>
<div class="hide" id="BusquedaPorSalario">
     Inserte un salario desde el que iniciar la búsqueda
</div>
var visible = document.getElementsByClassName("visible"); //collection
    visible = [].slice.call(visible); //array
<input  type="button" class="filtro"
        data-consultas="BusquedaPorSalario" 
        data-exc="ConsultasEmpleado"
        value="Búsqueda Por Salario"/>

<input  type="button" class="filtro"
        data-consultas="BusquedaPorFecha" 
        data-exc="ConsultasEmpleado"
        value="Búsqueda Por Fecha"/>
inputs = document.getElementsByClassName("filtro");
for( var i = 0 , l = inputs.length; i < l ; i ++ ){
    input = inputs[i];
    input.addEventListener("click",VerConsultas);
}

function VerConsultas(e){
    var data = e.target.dataset;
    var id = data.consultas;
    var exc = document.getElementById(data.exc);
    var consultas = document.getElementById(id);
    var visible = document.getElementsByClassName("visible");
    visible = [].slice.call(visible);
    for( var i = 0 ,l = visible.length ;i < l ;i ++ ){
        var current = visible[i];
        current.className = "hide";
    }
    consultas.className = "visible";
    if( exc != null )
        exc.className = "visible";
}