[英]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ónico </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ón</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ónicos </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.