在jQuery

时间:2017-12-12 18:34:58

标签: javascript jquery html

我试图将一个textarea的值复制到另一个没有HTML标记的值。 我做错了什么?

以下是代码:

$(document).ready(function() {
  $("#go").click(function() {
    var content = $("#inputdata").val;
    var text = $(content).text();
    $("#outputdata").val(text);

  });
});


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="go" value="go" />
<table id="content">
  <tr>
    <td>
      input:<br />
      <form id="inputform">
        <textarea id="inputdata" name="inputdata">
    <b>my bold text</b>
    <i>my italic text</i>
    </textarea>
      </form>

    </td>
    <td>
      output:<br />
      <textarea id="outputdata" name="outputdata"></textarea>
    </td>
  </tr>
</table>

我想要获得的结果是:

my bold text
my italic text

3 个答案:

答案 0 :(得分:2)

您在()

之后忘记了.val

$(document).ready(function() {
  $("#go").click(function() {
    var content = $("#inputdata").val();
    var text = $(content).text();
    $("#outputdata").val(text);

  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="go" value="go" />
<table id="content">
  <tr>
    <td>
      input:<br />
      <form id="inputform">
        <textarea id="inputdata" name="inputdata">
    <b>my bold text</b>
    <i>my italic text</i>
    </textarea>
      </form>

    </td>
    <td>
      output:<br />
      <textarea id="outputdata" name="outputdata"></textarea>
    </td>
  </tr>
</table>

答案 1 :(得分:2)

作为jQuery 方法,您需要在val中使用括号:

var content = $("#inputdata").val;

应该是:

var content = $("#inputdata").val();

http://api.jquery.com/val/

$(document).ready(function() {
  $("#go").click(function() {
    var content = $("#inputdata").val();
    var text = $(content).text();
    $("#outputdata").val(text);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="go" value="go" />
<table id="content">
  <tr>
    <td>
      input:<br />
      <form id="inputform">
        <textarea id="inputdata" name="inputdata">
    <b>my bold text</b>
    <i>my italic text</i>
    </textarea>
      </form>

    </td>
    <td>
      output:<br />
      <textarea id="outputdata" name="outputdata"></textarea>
    </td>
  </tr>
</table>

答案 2 :(得分:0)

创建一个虚拟元素,复制其中的内容,然后从中获取数据。它将完全满足您的需求。

$(document).ready(function() {
  $("#go").click(function() {
    var content = $("#inputdata").text();
    var dummy = document.createElement('span');
    dummy.innerHTML= content;
    var text = dummy.textContent || dummy.innerText;
    $("#outputdata").val(text);

  });
});