如何在页面加载时从文本区域设置跨度文本

时间:2013-10-17 12:22:06

标签: javascript jquery

我想在页面加载时从文本区域的值设置跨度中的文本。

我有一个范围:

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

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

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

页面加载后,我希望span的文本与文本区域文本相同。像(不起作用)的东西:

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

5 个答案:

答案 0 :(得分:1)

您正在尝试将DOM对象属性值与jQuery对象一起使用。您需要使用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;

答案 1 :(得分:1)

jquery对象没有{j}中value的定义。

使用val()功能。

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

您也忘了将$与文档对象

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

Js Fiddle Demo

答案 2 :(得分:1)

关于dom ready ready

$(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);
});

答案 3 :(得分:1)

您需要使用text()html()代替.value来抓取内容。

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

Working example

答案 4 :(得分:0)

使用text()设置文字而不是html() DEMO

$(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