javascript 给textarea设定值 并且是 换行的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 给textarea设定值 并且是 换行的相关的知识,希望对你有一定的参考价值。

<textarea id="aa" name="message"></textarea>
<script>
var a=document.getElementById("aa");
a.innerhtml="a<br/>b";//没有达到想要的效果
a.innerHTML="a\r\nb";//没有达到想要的效果
</script>
请教了,用javascript 给textarea设定值
想要的效果是
a
换行
b

<textarea id="aa" name="message"></textarea>
<script>
var a=document.getElementById("aa");
a.value="a<br/>b";//达到想要的效果
a.value="a\r\nb";//达到想要的效果
</script>
试试吧 可以了
参考技术A innerHTML只设定值
val可以设置html标签!
参考技术B a.innerHTML="a"+"<br />"+"b"

如何用 Javascript 替换和追加

【中文标题】如何用 Javascript 替换和追加【英文标题】:How to replace and append with Javascript 【发布时间】:2012-11-20 04:06:01 【问题描述】:

我有一个评论系统,我想在其中实现内联编辑(当有人知道一个好的插件或类似的东西时,请不要犹豫给我一个名字)并找到一个 Javascript sn-p 将文本替换为一个 textarea 和 text 作为该 textarea 的值。

但现在我需要向该文本区域添加一个按钮(提交按钮),以便用户可以保存他编辑的文本。

我的代码现在看起来像

<span id="name">comment</span>

<div onclick="replacetext();">test</div>

<script type="text/javascript">
    function replacetext()
            $("#name").replaceWith($('<textarea>').attr( id: 'name', value: $('#name').text() ));
    </script>

我已经用$("#name").append('&lt;button&gt;yes&lt;/button&gt;'); 对其进行了测试,但没有成功。

【问题讨论】:

除了您的示例中缺少 之外,它在 jsfiddle.net/j08691/adb8X 处工作正常 谢谢,但是添加一个额外的按钮需要什么代码? jsfiddle.net/ZaEDw 不工作 更好的方法是使用.show().hide() 来显示TEXTAREA 而不是DIV。或者,在 BODY 上设置一个类名来控制页面上各种元素的显示,然后设置这个类。 更正了您的 jsFiddle:jsfiddle.net/adb8X/5 @MiltiadisKokkonidis 谢谢! 【参考方案1】:

可以使用以下 jsFiddle 试用解决方案:http://jsfiddle.net/adb8X/5/

我相信你追求的是:

  $('<button>yes</button>').insertAfter("#name");

上面的代码在目标选择器(“#name”)中具有指定 id 的 DOM 元素之后插入一个新创建的 DOM 元素(是)。

更多关于insertAfter的信息在这里:http://api.jquery.com/insertAfter/

如果要插入replacetext(),会变成:

function replacetext() 
    $("#name").replaceWith($('<textarea>').attr(
        id: 'name',
        value: $('#name').text()
    ));

    $('<button>yes</button>').insertAfter("#name");

 

注意:我还更正了您的 jsFiddle。请在此处查看:http://jsfiddle.net/adb8X/5/(如果我没记错的话,设置有问题和一个小错字)。其中对应的行是:

 $("#name").append( $('<button>hi</button>') );

【讨论】:

【参考方案2】:
function replacetext() 

    $("#name").replaceWith($('<textarea>').attr(
        id: 'name',
        value: $('#name').text()
    ));
   $('#name').after('<button id="test">test</button>');


$('#test').live("click",function()
   alert("I am a newly-created element and .click won't work on me.");

);

您不能在文本区域中使用 .append() ,因为您不能“插入内容”或附加到它(还有其他解决方法)。您可以在 DIV、段落标记或任何可以充当容器的内容中执行此操作。http://api.jquery.com/append/http://api.jquery.com/after/http://api.jquery.com/live/ 或 .on() http://api.jquery.com/on/

【讨论】:

【参考方案3】:

这是工作代码。

<span id="name">comment</span>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script>
<div onclick="replacetext();">test</div>

<script type="text/javascript">
    function replacetext()
            $("#name").replaceWith($('<textarea>').attr( id: 'name', value: $('#name').text() ));
            $('#name').after('<input type="submit" />');
    
    </script>

如果可行,请接受它作为答案

【讨论】:

【参考方案4】:

另一个选项可以让您替换动态生成的标签,而不仅仅是带有静态 id = "Name" 的标签,例如:

此示例中的标签或锚链接的html将替换为文本框:

<a href="#" onclick="editOpen(this);">@Html.DisplayFor(modelItem => Model.Name)</a>|

Javascript(在editOpen 函数内部)

function editOpen(ctrl) 
   //textbox
    var editText = $('<input>').attr(
        type: 'text',
        value: $(ctrl).text()
     );

    //edit button
    var saveEditLink = $('<input>').attr(value:'Save',type:'button');

    //Put them together
    $(ctrl).replaceWith($(editText).after($(saveEditLink)));


【讨论】:

非常感谢您的回答非常有趣(也适用于未来的项目)。

以上是关于javascript 给textarea设定值 并且是 换行的的主要内容,如果未能解决你的问题,请参考以下文章

HTML textarea到javascript并保持换行符

javascript input / textarea onfocus全选并复制到剪贴板

java中 怎样设定textarea默认值啊?

javascript 操作 textarea

JavaScript中统计Textarea字数并提示还能输入的字符

html中怎样给textarea赋值