簡體   English   中英

動態將新元素添加到javascript對象

[英]Add new elements to a javascript object dynamically

我正在嘗試使用HTML和JQuery創建頁面。 我要執行的操作是在文本框中鍵入電子郵件,然后按按鈕,將其添加到對象中,並顯示添加的新電子郵件和已發送的電子郵件。 我的問題是,新電子郵件替換了我的電子郵件,之后沒有添加。 我該如何解決?

這是我的代碼

enter code here

<html>
<head>
    <script src="config/jquery-1.8.3.min.js"></script>
    <script type="text/javascript" language="javascript">
        var obj = {};

        $(document).ready(function(){
            $('#agr').click(function(){
                var correo_val = $('#correoe').val();
                var estrc = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

                if(correo_val == ''){
                    alert("Debes agregar un correo");
                }
                else if(!estrc.test(correo_val)){
                    alert("Correo no valido");
                }
                else if(estrc.test(correo_val)){
                    alert("Correo agregado exitosamente");
                    if(!obj.hasOwnProperty(correo_val)){
                        arr = [];
                        arr.push(correo_val);
                        // obj=arr;
                        obj2 = {};
                        obj2 = arr;
                        obj = obj2;

                    }else{  

                        obj2 = {};
                        obj = obj2;
                    }

                    alert(obj);
                    $("#listac").html(obj);
                }
            });
        });

    </script>
</head>

<body>
    <div>
        <table style='margin-top:10%' align='center'>
            <tr> <td> Ingresar correo electr&oacutenico                    </td> </tr>
            <tr> <td> <input type='text' name='correoe' id='correoe'>                  </td> </tr>
            <tr> <td> <input type='button' name='agregar' value='agregar' id='agr'> </td> </tr>
        </table>
    </div>

    <div style="background:#FFFFFF;border:0" class="box" id="LCriterios">
        <h1><span id="field"></span><span style="float:right;"></span></h1>
        <!--<label><span>Tipo de operaci&oacuten</b></span><select class='opSelect' name='selOp' id='selOp'></select></label>
        <label id='selCriterio'></label>
        <label style="height: 30px;"><input type="button" class="btAgregar" value="Agregar" id="btn_add"/></label>-->
        <label id="label12">Correos electr&oacutenicos </label>
        <div id='listac'></div>
    </div>

    </body>

我只是做了一個小提琴與你的JavaScript的一個調整-

if(!obj.hasOwnProperty(correo_val)){
                    arr = []; //  <-- move this to the first line where
                              // you already have var obj = {};
                    arr.push(correo_val);
                    ...

移動arr = []; 您用來將有效的電子郵件從該if()子句存儲到代碼的第一行的地方,在該行中您還聲明了var obj = {}; 否則arr = []; 每次添加另一封電子郵件之前,它將為一個空數組,並且始終只有一個元素(添加的最后一封電子郵件)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM