Javascript 从动态div中的值显示数组
我想知道如何从Javascript 从动态div中的值显示数组,javascript,Javascript,我想知道如何从div span中获取值,并创建一个数组(),以便稍后创建对数据库的查询。我想弄明白,但我就是搞不懂 HTML <form> <span class="input-component"><input type="text"/><a href=#></a></span> </form> <br><br> <div id="numcontainer">
div span
中获取值,并创建一个数组(),以便稍后创建对数据库的查询。我想弄明白,但我就是搞不懂
HTML
<form>
<span class="input-component"><input type="text"/><a href=#></a></span>
</form>
<br><br>
<div id="numcontainer">
<span class="containernum"></span><br>
</div>
Java脚本
jQuery(function($) {
var values = [];
$('#numcontainer').on('click', 'a.js-delete', function(e) {
$(this).prev().remove(); // the <span>
$(this).next().remove(); // the <br>
$(this).remove(); // the <a> itself
});
$('form input[type=text]').change(fileChangeHandler);
function fileChangeHandler() {
var form = $(this).closest('form');
}
var form = $(this).closest('form');
$('form .input-component input').on("propertychange keyup input paste",addInput);
onlyNums($('form .input-component input'));
function addInput() {
var remainingChars = $(this).val().length;
if (remainingChars == 24) {
if ($('.containernum').text() == '') {
$('.containernum').text($(this).val());
} else {
$('#numcontainer').append('<span class="containernum">'+$(this).val()+'</span><a class="js-delete href=#>[X]</a><br>');
}
$(this).val(''); // does empty the text input
$('.containernum').each(function(index){
// Your code
console.log( $(this).html() );
});
values.push($(this).val());
console.log(values);
}
}
function onlyNums($elem){
$elem.keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
}
});
jQuery(函数($){
var值=[];
$('numcontainer')。在('click','a.js-delete',函数(e)上{
$(this.prev().remove();//
$(this).next().remove();//the
$(this.remove();//the
);
}
$(this.val(“”);//清空文本输入
$('.containernum')。每个(函数(索引){
//你的代码
log($(this.html());
});
value.push($(this.val());
console.log(值);
}
}
函数onlyNums($elem){
$elem.keydown(功能(事件){
//仅允许退格和删除
if(event.keyCode==46 | | event.keyCode==8){
//让它发生吧,什么都不要做
}
否则{
//确保它是一个数字并停止按键
如果(event.keyCode<48 | | event.keyCode>57){
event.preventDefault();
}
}
});
}
});
谢谢你的时间
$('span.containernum').html()
或
我会成功的。你将得到html字符串,你可以内爆或做任何你想做的事。
有关这两个函数之间的差异,请参阅。要存储值;为什么不使用隐藏输入?创建具有相同名称的
input
元素,而不是使用相同的类创建跨距
<div id="numcontainer">
<input type="hidden" name="myNums" value="305" />
<input type="hidden" name="myNums" value="49" />
</div>
如果你的值不相关,你只需给它们起个不同的名字。此外,这个例子应该提供一个独立而简洁的小提琴版本,而不是让我们自己来计算。检查一下你键入的数字的例子,它们会存储在区域中,稍后我想在数组中看到它们()我认为这是个坏主意。没有其他方法吗?我编辑了我的答案。我不认为还有其他方法,我也不认为有什么问题,因为你可以控制你的跨度。好主意,检查它不会让我得到值=“它留下空白你的问题只是问如何获取一组值并将它们放入数组中。它没有说明如何显示价值。另外,您的JSFIDLE有打字错误(
.lenght
)。将代码简化为您遇到问题的部分,然后将其扩展为更复杂的部分。我不希望它们的值显示为现在的值。后来我不想添加一个发送到数据库的按钮(那么我应该如何获得跨度的值呢?)。怎么会有打字错误
<div id="numcontainer">
<input type="hidden" name="myNums" value="305" />
<input type="hidden" name="myNums" value="49" />
</div>
var values = [];
$("#numcontainer input:hidden[name='myNums']").each(function() {
values.push( $(this).val() );
});