21

Re: Як видалити потрібний checkbox разом з елементом масиву?

VTrim написав:

Сергій78, читайте про оператор delete http://javascript.ru/delete

Гаразд, визнаю свою помилку, працював. Просто я не так часто його використовую і тому здалося, що для елементів масиву він не застосовується.

22

Re: Як видалити потрібний checkbox разом з елементом масиву?

я зробив би це так:

Прихований текст
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    #block1{
        height: 500px;
        width: 200px;
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        margin: auto;
        border: 2px solid black;
    }
    p{
        margin:0;
    }
    </style>
</head>
<body>
    <div id="block1">
        <h2>Фрукти:</h2>
        <form name="par" id="par"></form>
    </div>
<script type="text/javascript">
var fruits=['яблуко','груша','персик','хурма'];
var par = document.getElementById('par');
function deleteThis(id,tt){
    tt.parentNode.remove();
    delete fruits[id];
}
window.onload=(function(){
    for(i=0; i<fruits.length; i++){
        par.innerHTML+='&nbsp;&nbsp;'+'<p><label><input name="rbtn" type="checkbox" onclick="deleteThis('+i+',this)">'+fruits[i]+'</label></p>';
    }
})(fruits,par);
//зрештою тут є ще варіанти - або перебирати DOM, або перебирати масив фруктів, можливо ще якісь
//+ можна обробник повішати не в html-коді а в js - addEventListener
</script>
</body>
</html>
Подякували: Monolith1

23

Re: Як видалити потрібний checkbox разом з елементом масиву?

Array.prototype.forEach.call (document.querySelectorAll('input'),
    function (element) {
        element.onclick = function (e) {
            var sibling = e.target.nextSibling;
            if (sibling.nodeType == 3)
                sibling.parentNode.removeChild (sibling);
        };
    });
Подякували: 221VOLT1