javascript – 如何将html和值输出转换为字符串

给定此html输入元素,< input id =“input1”type =“text”/>

如果用户输入’test’值,jQuery中是否有一种方法可以将其序列化为字符串?

我要找的输出是,< input id =“input1”type =“text”value =“test”/>

我没有将它复制到DOM中的另一个元素,我需要实际的字符串,所以我可以将它发送到EVOPdf.我已经尝试过克隆(true),但它没有给我任何用户输入输入的值.

我不得不解析html()字符串并为每个输入插入一个值,除非有人知道更好的方法.

最佳答案 我的测试结果是,属性值与值值无关 – 至少在我使用Safari 5.1和FF 6进行测试时.

所以,如果我修改了文本字段的内容(我输入了ueoau)并选择它

> var text = $('input[type=text]').first()

并使用.val()获取其值

> text.val()
"ueoau"

但得到它的标记会将值呈现为空(这个片段来自james的回答)

> $('<div>').append(text.clone()).remove().html()
"<input autocomplete="off" name="q" class="textbox" placeholder="search" tabindex="1" type="text" maxlength="140" size="28" value="" style="width: 200px; max-width: 200px; ">"

获取属性值也不起作用(在这里使用DOM getAttribute来避免jQuery在attr()中的魔力)

> text[0].getAttribute('value')
""

同样,属性值与值值不同.因此,您可以使用的一种解决方法是将其属性设置为其值

> text[0].setAttribute('value', text.val())
> $('<div>').append(text.clone()).remove().html()
"<input autocomplete="off" name="q" class="textbox" placeholder="search" tabindex="1" type="text" maxlength="140" size="28" value="ueoau" style="width: 200px; max-width: 200px; ">"

这对我有用.我想我的解释是,属性值仅代表字段的初始值,之后不与其真值同步.

点赞