我想在页面加载时从文本区域的值设置跨度中的文本。
我有一个范围:
<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);
});
答案 0 :(得分:1)
您正在尝试将DOM
对象属性值与jQuery
对象一起使用。您需要使用val()
代替value
。 value
属性只能使用javascript DOM对象进行评估,但不能使用jQuery对象进行评估。
更改
var message_text = $("#text_message").value
到的
var message_text = $("#text_message").val();
或者,使用indexer
将jQuery
对象转换为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);
});
答案 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);
});
答案 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