-1

我遇到了这个非常简单的 jQuery 代码的麻烦。

我有一个 textarea 和一个按钮来发表评论。每当我发表评论时,都会列出 textarea 的值。

HTML

 <textarea rows="5" cols="40" class="Textarea"></textarea>
<ul>
    <li class="comment_list"></li></ul>    
<input type="button"  value="Post" class="button_post"/>

我正在使用这个jQuery 代码-

$(function(){

var text_t=$(".Textarea").val();
$(".button_post").click(function(){
$(" .comment_list").val(text_t);

});
});

小提琴

4

2 回答 2

5
$(function () {
    $(".button_post").click(function () {
        var text_t = $(".Textarea").val(); 
        // text_t has to be in the click function it order for it to update with the new content when you click post (otherwise it will be empty like the textbox was when the page loaded)
        $(".comment_list").text(text_t); // li does not have a value, use html() or text()
    });
});

小提琴


更多细节

$(function(){
var text_t=$(".Textarea").val();

首先,执行上述操作将加载textbox文档准备就绪时的值,因此text_t在您的情况下将为空(页面加载时文本框没有值)

$(".button_post").click(function(){
   $(".comment_list").val(text_t);
});

第二个问题来了,li没有 value 属性,所以你不能使用.val(). 您可以使用的是.text()(它将在<li></li>.html()html 结构之间插入文本)。

这里要注意的是,由于text_r是在点击功能之外,所以点击post时不会更新为新的文本框值。

}); // end 
于 2013-07-16T09:39:18.007 回答
0

正确的方法是:

$(function () {    
    $(".button_post").click(function () {
        var text_t = $("textarea").val();                
        $(".comment_list").html(text_t);
    });
});

将您的 ' var text_t = $("textarea").val();' 放在函数内部而不是外部,因为您的代码var text_t被分配了空白 val。

于 2013-07-16T09:47:13.180 回答