使用jQuery,我添加了一个textarea
$('#description').append('<textarea rows="8" cols="40">test</textarea>');
好的,我将“测试”文本更改为“test 01”。但是,当我尝试
时 var cadena = $('#description').text();
alert(cadena);
我得到“测试”而不是“测试01”。为什么呢?
答案 0 :(得分:9)
就像在.text()
doco page上所说的那样,“要设置或获取输入或textarea元素的文本值,请使用.val()
方法。”
您没有说明如何更改文字,但您应该这样做:
$('#description textarea').val("test 01"); // change the text
var cadena = $('#description textarea').val(); // retrieve the current text
注意“#description”是textarea的容器,您需要选择textarea本身来获取值。当然,如果你在那个容器中有多个textarea,上面的代码将不起作用,所以如果你可以为新的textarea分配一个id然后根据它选择它会更好。
答案 1 :(得分:8)
给textarea
一个ID,然后使用val
函数更改它的值:
$('#description').append('<textarea id="xxx" rows="8" cols="40">test</textarea>');
$('#xxx').val('test01');
//... later on
alert($('#xxx').val());
答案 2 :(得分:3)
看起来你真的想要这样做:
$('#description').append('<textarea id="newTextArea" rows="8" cols="40">test</textarea>');¬
然后这个:
var cadena = $('#newTextArea').text();
alert(cadena);
否则,您只需将textarea
添加到#description
内,然后尝试获取.text
的所有值(无论它是什么)。
如果您向id
添加textarea
,则可以更加具体地选择,并获取您要查找的文字值。
答案 3 :(得分:3)
用户.val()
代替.text()
。
如果您只附加了一个文字区域,则可以
var cadena = $('#description textarea:first-child').val();
测试用例:http://jsfiddle.net/UzK59/
OR
如果要附加多个文字区域
var counter = 0;
$('#description').append('<textarea id="textArea'+ counter +'" rows="8" cols="40">test</textarea>');
counter++;
然后
$('#textArea' + counter).val(); //Considering counter is 0 (Zero) here
测试用例:http://jsfiddle.net/UzK59/1/
要设置值,您可以
$('#textArea' + counter).val('New Value')
希望这会对你有所帮助。