设计意图:
希望将输入好的表单内容追加到指定dom内,
<p id="itemsForm">
<input type="text" value="123">
<input type="text" value=""> //输入abc
</p>
$("#itemsGroup").append($("#itemsForm").html());
结果是这样的(不是我想要的):
<p id="itemsGroup">
<input type="text" value="123">
<input type="text" value="">
</p>
状况描述:html()并没有把用户输入的value的值带过来,本已存在的value正常copy,求解
希望是这样的:
<p id="itemsGroup">
<input type="text" value="123">
<input type="text" value="abc">
</p>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
可以使用$(selector).clone()方法,实现你想要的功能,具体自行百度
你应该用
clone这个才是复制dom。而
html是获取innerHTML这种dom中的标签属性的字符串,是完全的两个概念。一个例子,仅供思考:
————————————————————————————
用append()不行,用val,你看看api文档。
val=$("#id").attr("value");
你试试
$("").val()
input不是用val()么
你想要添加节点,同时还要获取节点内输入的内容--input输入框的vlaue变化是动态的,也意味着你在获取节点,复制节点的时候,它的值还是保留在初始状态,解决的方法:append方法的调用应该在oninput事件后执行(如果输入框有变化的话),这样子才能保证你在拷贝节点的时候,它的值也是你在该时刻的值--不知道你懂这意思没有
在你使用append()之前应该有一个函数来判断,是不是text文本框中有字符输入。如果有输入的话就把他显示出来,这个应该要用一个循环来解决