2 votes

JS : Sélection d'un DIV en fonction de sa valeur onClick

J'ai plusieurs div s avec le même class non id et seulement leur onClick en les séparant pour qu'ils soient identifiables de façon unique, comme ceci :

<div class="nest" onclick="nested.selection('VALUE1'); return false;">
  ... something inside the div ...
</div>
<div class="nest" onclick="nested.selection('VALUE2'); return false;">
  ... something inside the div ...
</div>

J'aurais besoin de trouver et de supprimer une entière div sur la base des données spécifiées onClick mais comme je ne peux pas utiliser getElementById, Class ou Name, comment cette recherche peut-elle être réalisée avec JS (pas jQuery) ?

2voto

Jovi Points 36

Essayez ceci

document.querySelector('[onclick="nested.selection(\'VALUE2\'); return false;"]').remove()

0voto

elements = document.querySelectorAll('.nest');

for (var i = 0; i < elements.length; i++) {
    elements[i].addEventListener('click', (event) => {
        const item = event.target;
        item.parentNode.removeChild(item);
    });
}

Ce code va enlever la div après avoir cliqué dessus. J'attache un gestionnaire d'événement à tous les éléments 'nid' et après avoir cliqué sur un élément spécifique, je le supprime.

0voto

Ufuk Aydın Points 158

Essayez ceci ;

   var nested = {
        selection: function (a, e) {
            var element = e.currentTarget;
           element.parentNode.removeChild(element);
        }

    }

html

<div class="nest" onclick="nested.selection('VALUE1',event); return false;">
    ... something inside the div ...VALUE1
</div>
<div class="nest" onclick="nested.selection('VALUE2',event); return false;">
    ... something inside the div ...VALUE2
</div>

0voto

Rüzgar Points 751

Vous n'avez pas besoin de cliquer sur quoi que ce soit ici. Il suffit de passer l'argument. Comme ça :

deleteWithArg('VALUE1');

function deleteWithArg(deleteElement) {
    var nst = document.getElementsByClassName("nest");
    for(var i = 0; i < nst.length; i++)
    {
       let atr = nst.item(i).getAttribute('onclick').match(/'([^']+)'/)[1];
       if (atr == deleteElement) {
            nst.item(i).parentNode.removeChild(nst.item(i));
       }
    }   
}
deleteWithArg('VALUE1');

<div class="nest" onclick="nested.selection('VALUE1'); return false;">
  ... something inside the div with value VALUE1...
</div>
<div class="nest" onclick="nested.selection('VALUE2'); return false;">
  ... something inside the div with value VALUE2...
</div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X