2015-07-22 99 views
1

场景: 双引号后,下一个字符不显示。div文本到输入值

我知道这是因为单引号和双引号的转义,我试过这个正则表达式(/"/g,'\"'),但它不工作。

有人可以帮我查看代码吗?我想要的输出是div上的所有字符也应显示在输入上。

PS:我想尽可能避免replace(/"/g,'"')

<div>single ' double " single ' </div> 

<form> 
</form>  

$("form").append('<input type="text" value = "' + $("div").text().replace(/"/g,'\"') + '" />'); 

看到这个小提琴demo

回答

3

尝试此方法(demo):

$('<input>', { 
    type: 'text', 
    value : $("div").text() 
}).appendTo('form'); 

更新:多元素,试试这个(demo

var txt = $('div').text(); 

$('<tr><td><input type="button"></td><td><input type="text"></td></tr>') 
    .appendTo('table') 
    .find('input') 
    .val(txt); 
+0

如果我需要添加其他元素,这是适当的格式? http://jsfiddle.net/3uc4fLeh/9/ – bumbumpaw

+1

jQuery的['.append()'](http://api.jquery.com/append/)确实支持这种格式('.append(content [,content] )');但说实话,对我来说,这很难阅读。您可以制作上述代码的另一个副本以添加第二个输入。如果像这样http://jsfiddle.net/3uc4fLeh/10/, – Mottie

+0

格式变得复杂。任何其他想法?无论如何,谢谢你的信息!这对我来说是新的。 @Mottie – bumbumpaw