我的javascript变量不会在jquery事件处理程序上更新

时间:2013-10-15 21:54:01

标签: javascript jquery html

我的网站允许用户发布,也可以编辑这些帖子。

当用户想要编辑帖子时,我创建了一个带有“textarea”的“div”和带有jquery的“save”按钮,我将用户在帖子中所拥有的内容加载到“textarea”。

var textarea = $('<textarea></textarea>');
textarea.attr({
            rows:"2", 
            cols:"56",
            type:"text",
            id:"textedit",
            name:"text"
        });
textarea.text(post_content);
textarea.appendTo(div2);

var save_button = $('<button></button>');
    save_button.attr({
                id:"editChirp",
                value:"Post"
                });

        save_button.text("Save");
        save_button.addClass('button');
        save_button.appendTo(div2);

按钮的jquery事件处理程序如下:

save_button.click(function () {
            var temp = $('#textedit').val();
            alert(temp);
}); 

问题是临时变量没有更新,它会在第一次更新帖子时保持相同的值。

1 个答案:

答案 0 :(得分:0)

    save_button.click(function () {
                var temp = $(this).siblings('textarea.myPostText').eq(0);
// eq(0) returns the first sibling found.
                alert(temp.val());
    }); 

兄弟姐妹的样本。给定一个固定的结构,你可以只查询按钮的兄弟,它应该总是只返回一个textarea。然后限制是您可能需要更改结构以提供所需的唯一性

这是一个小提琴:http://jsfiddle.net/GUsDg/3/