jquery html()为何无法获得input的value的值

设计意图:
希望将输入好的表单内容追加到指定dom内,

<div id="itemsForm">
    <input type="text" value="123">
    <input type="text" value=""> //输入abc
</div>
$("#itemsGroup").append($("#itemsForm").html());

结果是这样的(不是我想要的):

<div id="itemsGroup">
    <input type="text" value="123">
    <input type="text" value="">
</div>

状况描述:html()并没有把用户输入的value的值带过来,本已存在的value正常copy,求解

希望是这样的:

<div id="itemsGroup">
    <input type="text" value="123">
    <input type="text" value="abc">
</div>
阅读 10.5k
9 个回答

可以使用$(selector).clone()方法,实现你想要的功能,具体自行百度

你应该用clone这个才是复制dom。

html是获取innerHTML这种dom中的标签属性的字符串,是完全的两个概念。

一个例子,仅供思考:

<div id="itemsForm">
    <input type="text" value="123" id="username"> 
    <input type="text" value=""> //输入abc
</div>

————————————————————————————

$("#username").val("qwest");

用append()不行,用val,你看看api文档。

val=$("#id").attr("value");
你试试

$("").val()

input不是用val()么

你想要添加节点,同时还要获取节点内输入的内容--input输入框的vlaue变化是动态的,也意味着你在获取节点,复制节点的时候,它的值还是保留在初始状态,解决的方法:append方法的调用应该在oninput事件后执行(如果输入框有变化的话),这样子才能保证你在拷贝节点的时候,它的值也是你在该时刻的值--不知道你懂这意思没有

在你使用append()之前应该有一个函数来判断,是不是text文本框中有字符输入。如果有输入的话就把他显示出来,这个应该要用一个循环来解决

新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题