我用一个按钮附加一个textarea
$(".mydiv").append("<textarea id='myTextarea'></textarea><div class='sendReply btn btn-default'>my button</div>");
之后,我正在将新文本写入textarea并试图通过点击功能在textarea中获取新的写入值;
jQuery(document).on('click','.sendReply', function () {
var myNewText = $("#myTextarea").val();
console.log(myNewText);
});
但它说这是一个“空字符串”,如果我添加一个像<textarea id="myTextarea">some text</textarea>
这样的值的文本区域,我的功能可以工作并给我“一些文本”,但如果我编辑textarea并单击sendReply按钮(我的话点击功能),它仍然给我“一些文字”,它不会改变
如何在应用textarea之后获得编辑的textarea值?
答案 0 :(得分:3)
附加HTML时, .
中有.sendReply
您只需从.
.sendReply
即可
使用
<div class='sendReply btn btn-default'>my button</div>"
当您使用事件委托时,您的jQuery将起作用。
由于您多次添加具有相同ID的textarea? $("#myTextarea").val()
将始终显示ID为 myTextarea 的第一个textarea的值。您可以使用公共类,然后使用prev()
选择textarea
参见示例
$(document).ready(function() {
$(document).on('click', '.sendReply', function() {
var myNewText = $(this).prev(".myTextarea").val();
alert(myNewText);
});
for (var i = 0; i < 5; i++) {
$(".mydiv").append("<textarea class='myTextarea'>some text</textarea><div class='sendReply btn btn-default'>my button</div>");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='mydiv'></div>
答案 1 :(得分:1)
应该是
$(".mydiv").append("<textarea id='myTextarea'></textarea><div class='sendReply btn btn-default'>my button</div>");
然后
jQuery(document).on('click','.sendReply', function () {
var myNewText = $("#myTextarea").val();
console.log(myNewText);
});
不要使用点(。)作为类名..
答案 2 :(得分:1)
而是使用div ..使用一些标准来编码..你可以让它有按钮..这里是代码
<div class="mydiv"></div>
$(".mydiv").append("<textarea id='myTextarea'></textarea><input type='button' class='sendReply btn btn-default' value='my button'></input>");
jQuery(document).on('click','.sendReply', function () {
var myNewText = $("#myTextarea").val();
console.log(myNewText);
alert(myNewText);
});
<强> JSFIDDLE 强>