jquery val函数从textarea获取新值

标签 jquery textarea jquery-click-event

here是一个jsfiddle

这是我的 html

<table id="commentsTable">
        <tr>
            <td name="userid"> JIM </td>
            <td name="comment" id="68" class="commentTD">  something   </td>
            <td><a class="edit" href="#">edit</a></td>
        </tr>
</table>​

和我的js:

var update = "update";

$("a.edit").click(function(e) {
    e.preventDefault();
    var comment = $(this).closest("tr").find('.commentTD');
    comment.html('<textarea name="comment" class="commentArea">' + comment.text() + '</textarea>');
    $(this).removeClass().addClass(update).text(update);
    bindUpdate();
});

function bindUpdate() {
    $("a." + update).click(function(e) {
        e.preventDefault();
        var commentNewText = $(this).closest('tr').find('textarea.commentArea').val();
        alert(commentNewText);
    });
};​

我可以添加一个文本区域并将点击事件绑定(bind)到它,但我似乎无法获取新值,我得到了旧值...

最佳答案

问题是您没有从链接中解除旧事件的绑定(bind),因此每次您单击它时它仍然会添加一个新的文本区域,然后它才会调用bindUpdate() 功能。

查看更新后的 jsFiddle:http://jsfiddle.net/RALDF/8/

编辑:我建议将 $(this) 的值保存到变量中并重新使用它,因为您多次调用它,这有对性能产生负面影响/每次执行 $(this)/时 jQuery 都需要创建新对象/

关于jquery val函数从textarea获取新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816916/

相关文章:

javascript - 自动调用 jQuery .click() 函数

javascript - 在 .querySelector 中引用它

html - html lang 属性在文本区域或其他用户可编辑元素上意味着什么?

html - html形式的文本区域中的换行符一旦发布就不会保留

javascript - 无法在动态生成的文本区域中输入内容

javascript - 在一个按钮上绑定(bind)两个具有不同属性的单击事件不起作用

javascript - 多页 jquerymobile 文档第二页上的按钮的单击事件不会触发

javascript - 用单引号替换转义的单引号

javascript - JS - 帮助 - 行分组

javascript - 如何让 div 调整自身大小以在页面加载时显示图像