如何在页面加载时从文本区域设置范围的文本

How to set span's text from text area on page load

本文关键字:文本 区域 设置 范围 加载      更新时间:2023-09-26

我想在页面加载时从文本区域的值设置文本的范围。

我有一个跨度:

<span id='message'></span>

有一个文本区域,我用一个 rails 变量设置了它的值:

<%= f.text_area :text_message, value: @user.text_message, id: 'text_message' %>

当页面加载时,我希望范围的文本与文本区域的文本相同。类似的东西(不起作用):

(document).ready(function() {     
  var message_text = $("#text_message").value;
    $("#message").html(message_text);
});

jQuery 对象没有 JavaScript 中value的定义。

使用 val() 函数。

var message_text = $("#text_message").val();

而且您还忘记将$与文档对象一起使用

$(document).ready(function() {     
  var message_text = $("#text_message").val()
    $("#message").html(message_text);
});

Js 小提琴演示

您正在尝试将对象属性值与jQuery对象一起使用DOM。您需要使用val()而不是valuevalue属性只能用javascript DOM对象评估,不能用jQuery对象评估。

改变

var message_text = $("#text_message").value

var message_text =  $("#text_message").val();

或者,使用 indexerjQuery对象转换为DOM对象。

var message_text = $("#text_message")[0].value;

on dom ready use

$(document).ready(function() {     
  var message_text = $("#text_message").val();
    $("#message").text(message_text);
});
$(document).ready(function() {     
  var message_text = $("#text_message").val();
    $("#message").html(message_text);
});
您需要

使用text()html()而不是.value来获取内容。

$(document).ready(function() {     
    var message_text = $("#text_message").text();
    $("#message").html(message_text);
});

工作示例

使用 text() 设置文本而不是html()演示

$(document).ready(function() {//$ is missing here     
    var message_text = $("#text_message").value
    $("#message").text(message_text);
});

当 ypu 设置文本时,跨度为 例如 0:

<span id="message">hi</span> //here hi is set as text