Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykel-ctba

Não está encontrando indice de array, mas ele existe

Recommended Posts

Fala galera,

 

Tenho um array e estou utilizando splice para remover um determinado item escolhido.

Porém, para usar o splice, preciso saber qual o índice do array ele tem que apagar. Aqui que está o problema. Está retornando -1 (ou seja, não encontrado), mas ele existe. A variável "secoes" é um array e ela contém os itens: 25,24,23,22 e vamos supor que quero remover o item 22.

 

Código completo (O splice está na linha 38 deste código)

// * Seleção de conteúdo
var secoesSelecionado = $("#hdSecaoMaterial").val(); // Valor retornado: 25,24,23,22

if(secoesSelecionado.lenght == 0) // Verifica se as seções selecionadas está vazio
{
    var secoes = []; // Se estiver, cria um novo array
}
else
{
    var secoes = secoesSelecionado.split(); // Transforma o valor acima em array
}

$(".selectConteudo").click(function() // Caso clique numa seção
{
    if($(this).hasClass("inativo"))
    {
        // Marca no layout
        $(this).removeClass("inativo").addClass("ativo"); 
        
        // Seleciona o ID
        var novoID = $(this).attr("data-id");
        
        // Cadastra o novo item no array "secoes"
        secoes.push(novoID);
    }
    else if($(this).hasClass("ativo"))
    {
        // Desmarca no layout
        $(this).removeClass("ativo").addClass("inativo");
        
        // Descobre qual o indice que $(this).attr("data-id") está em "secoes"
        indexSecao = secoes.indexOf($(this).attr("data-id"));
        
        alert("Seções no array: " + secoes);
        alert("Vamos remover o ID: " + $(this).attr("data-id") + " que está no index " + indexSecao);
        
        // Remove do array
        secoes.splice(indexSecao,1);
    }
    else
    {
        alert("Erro. Contate o administrador do sistema.");	
    }
    
    // Grava o array em hdSecaoMaterial
    $("#hdSecaoMaterial").val(secoes);
    
    return false;
    
});

Descobri o problema. Esqueci de quebrar a string em array do jeito certo, faltou o item separador.

var secoes = secoesSelecionado.split(","); // Transforma o valor acima em array

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.