如何使用 jQuery 在动态创建的文本区域中显示文本?

How to display text in a dynamically created textarea with jQuery?

我正在通过单击 jQuery 按钮创建一个文本区域。我遇到的问题是 textarea 值不显示,但我可以在控制台中看到该值已设置。我怎样才能使它工作并在动态创建的文本区域中显示文本?

$('.createTextButton').click(function() {

  var mailbody = 'Hello, how are you?';


  $('<textarea>').attr({
    id: 'demomailbody',
    class: 'form-control',
    name: 'demomailbody',
    value: mailbody
  }).appendTo('#pf4');


});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <label>
          <span>Body</span>
          </label>
  <p id="pf4"></p>
</div>

<button class="createTextButton">Create</button>

我在 Inspector 中看到的内容 screenshot

$("textarea").html("Your Text");

$("textarea").text("Your Text");

你可以使用上面的代码。

jsfiddle.net/cLsd39e1/

文本区域没有具有值属性。

$('.createTextButton').click(function() {

  var mailbody = 'Hello, how are you?';


  $('<textarea>').attr({
    id: 'demomailbody',
    class: 'form-control',
    name: 'demomailbody'
  }).appendTo('#pf4');
  
  $('textarea').text(mailbody).appendTo('#pf4');


});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <label>
          <span>Body</span>
          </label>
  <p id="pf4"></p>
</div>

<button class="createTextButton">Create</button>

value 实际上是 属性 而不是属性。使用 .val() 设置文本。或者您可以(但不推荐)使用 .prop('value', mailbody)

$('.createTextButton').click(function() {
  var mailbody = 'Hello, how are you?';
  $('<textarea>')
    .attr({
      id: 'demomailbody',
      class: 'form-control',
      name: 'demomailbody'
    })
    .val(mailbody)
    .appendTo('#pf4');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <label>
    <span>Body</span>
  </label>
  <p id="pf4"></p>
</div>

<button class="createTextButton">Create</button>