3

这类问题往往会立即获得反对票。如果你有答案,请帮忙!谢谢。

我有一个向 dom 添加 textarea 的脚本。当我输入数据并稍后尝试检索它时,该值返回空。

这成功地设置了 textarea 的值:

$("textarea").each(function(){
    $(this).val("ASDFASDF");
});

这成功设置了 textarea 的 css 背景属性:

$("textarea").each(function(){
    $(this).css({"border":"2px solid red"});
});

但这不会返回值:

$("textarea").each(function(){
    alert($(this).val());
});

我已经尝试过 .text()、.html()、.value - 它们都没有返回任何内容!它不会警告“未定义”或 null,而只是一个空值。

我不知道为什么。

提前感谢您的建议。

更多信息

HTML是:

<textarea id="Bio" rows="4"></textarea>

JQuery 库: http ://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

dom 加载完成后,通过按钮触发函数。

代码的简化版本在这里: http ://social-gamer.com/textarea.html

4

3 回答 3

4

它确实有效,还有其他问题。你可以看到它在这里工作

<textarea>Hello One</textarea>
<textarea>Hello One two</textarea>
<textarea>Hello One two three</textarea>

$("textarea").each(function(){
    alert($(this).val());
});
  • 您使用的是什么版本的 jQuery?
  • 您的代码是否在加载 DOM 之前运行?
  • 你的 HTML 是什么样的?您是否为 textarea 分配了 value 属性?那不起作用,请参阅http://jsfiddle.net/2bjLJ/1/

其他注意事项

each当您想在所有底层对象上调用方法时不需要。

$("textarea").each(function(){
    $(this).val("ASDFASDF");
});

$("textarea").each(function(){
    $(this).css({"border":"2px solid red"});
});

它可以只是

$("textarea").val("ASDFASDF");
$("textarea").css({"border":"2px solid red"});

但是,在阅读时,您必须调用 each,否则您将从 jQuery 集合中的第一个对象中获取值

工作示例

于 2013-01-30T22:28:55.553 回答
4

问题最终成为重复的 ID。通常我会先检查这个,但我什至没有通过它的 ID 访问元素,而只是通过输入类型“textarea”。

因此,即使按类或仅按其在 DOM 中的位置来定位元素,如果它具有重复的 ID,它也会失败。我之前并没有真正考虑这么多,因为我没有通过身份证!

于 2013-01-30T23:32:05.257 回答
0

你好吗,

听着,TextArea 是唯一一个不使用 val() 获取和设置值的输入,因为当您将值放在 textarea 上时,您将放在标签内。

有一个例子

<textarea>Inside is the content so to 
get the content inside of tags you use HTML or TEXT</textarea>

因此,当您尝试获取数据时,您必须这样做:

$('textarea').text();

并设置文本区域的数据:

$('textarea').text("HERE'S THE CONTENT.");

这是一个小提琴,你可以看到我所说的一切

http://jsfiddle.net/nfTVJ/

祝你好运,再见

于 2013-01-30T23:46:03.400 回答