如何通过jquery获取js动态append到html页面的dom属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过jquery获取js动态append到html页面的dom属性相关的知识,希望对你有一定的参考价值。
只要js创建的dom已经append进html中去了,那么jquery就可以像获取普通dom一样获取它们,以及它们的属性。 参考技术A 可以直接使用jQuery的live方式为这些元素添加事件 参考技术B 用$("")找到append时的那个子节点,然后.children()如何使用jquery生成动态输入并通过id获取值
【中文标题】如何使用jquery生成动态输入并通过id获取值【英文标题】:how to generate dynamic input and get the value by id using jquery 【发布时间】:2018-02-10 13:34:16 【问题描述】:实际上我有一个表单,我在输入框中输入名称、html 页面名称并将其保存到数据库中。这里我遇到了一些问题
我可以生成输入框,但是如何获取那个输入框的值呢?
如何获取在动态框中输入的输入框的动态值并将其发送到发布请求,因为我知道如何发送多个静态输入框值请求我们如何发送它。
下面是我的代码
<div class="input_fields_wrap">
<button class="add_field_button">Add More Fields</button>
<div><input type="text" name="mytext[]"></div>
</div>
$(document).ready(function()
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e) //on add input button click
e.preventDefault();
if(x < max_fields) //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
);
$(wrapper).on("click",".remove_field", function(e) //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
)
);
ithin上面我可以生成动态输入框,可以删除它但无法获取值,所以如何使用id生成并将所有动态生成的值发布到数据库中
【问题讨论】:
您能告诉我们您是如何尝试获取这些值的吗?如果你不告诉我们很难说有什么问题...... 【参考方案1】:另一种方式,在表单中添加以下按钮:
<button class="getValue">Get Field Values</button>
在加载时在 JS 中添加以下按钮点击事件:
$(getValue).click(function (e)
e.preventDefault();
let fieldValues = "";
$("input").each(function(i,e)
fieldValues = fieldValues == "" ? $(e).val() : fieldValues + ", " + $(e).val();
)
alert(fieldValues);
);
【讨论】:
【参考方案2】:可以试试这样的
var inputField = $('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>');
$(wrapper).append(inputField);
然后您可以将事件附加到该变量。
inputField.on('change', 'input', function()
var value = $(this).val();
console.log(value);
);
希望对你有帮助:)
【讨论】:
【参考方案3】:您可以像这样使用 jquery #map()
函数:
var list = wrapper.find('input').map(function()
return $(this).val();
).get();
当您想要提交 列表 值发送到服务器时 - 请参阅下面的演示:
$(document).ready(function()
var max_fields = 10; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e) //on add input button click
e.preventDefault();
if (x < max_fields) //max input box allowed
x++; //text box increment
$(wrapper).append('<div><input type="text" name="mytext[]"/><a href="#" class="remove_field">Remove</a></div>'); //add input box
);
$(wrapper).on("click", ".remove_field", function(e) //user click on remove text
e.preventDefault();
$(this).parent('div').remove();
x--;
);
/* ADDED THIS */
$('.submit').click(function()
var list = wrapper.find('input').map(function()
return $(this).val();
).get();
// send to server here
console.log(list);
);
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input_fields_wrap">
<button class="add_field_button">Add More Fields</button>
<div><input type="text" name="mytext[]"></div>
</div>
<button class="submit">Submit</button>
【讨论】:
以上是关于如何通过jquery获取js动态append到html页面的dom属性的主要内容,如果未能解决你的问题,请参考以下文章
jquery append添加的元素用jquery无法获取到
jquery append添加的元素用jquery无法获取到