我的jquery代码不工作?

时间:2010-06-12 19:19:56

标签: javascript jquery

    

UCCN1003

修改

<script type="text/javascript">
    $(function(){
        $('a.edit').click(function(event){

            var change = $(this).parent('div').find('p');
            var changeText = change.text();
            var wrapper = $(this).parent('div');
            var clone = change.clone(true);

            var changeBox = $(this).parent('div').find('.editBox');
            var changeBoxText = changeBox.val();
            if($(this).text() == 'Edit'){
                wrapper.prepend("<input class='editBox' type='text' value='"+ changeText + "'/>");
                wrapper.append("<a href='#' class='save' style='margin-left:10px' >Save</a>");
                change.remove();
                $(this).text("cancel");
            }else if($(this).text()=='cancel'){
                wrapper.prepend("<p>" + changeBoxText +"</p>");
                $('.editBox').remove();
                $('.save').remove();
                $(this).text('Edit');
            }

        });


        $('.save').click(function(event){
            var editBox = $(this).parent('div').find('.editBox');
            var editBoxText = editBox.text();

            var wrapper = $(this).parent('div');
            wrapper.prepand("<p>" + editBoxText + "</p>");
            editBox.remove();
            $(this).remove();
        });
    });
</script>

我的工作是

 $('.save').click(function(event){
        var editBox = $(this).parent('div').find('.editBox');
        var editBoxText = editBox.text();

        var wrapper = $(this).parent('div');
        wrapper.prepand("<p>" + editBoxText + "</p>");
        editBox.remove();
        $(this).remove();
    });

其中包装器不会预备p标签,而editBox和.save不会被删除。 我尝试在此添加警报(“工作”),它根本不会发出警报。有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

这就是:.prepand(),应该是:.prepend():)

目前它会抛出一个.prepand()不是函数错误,就这些问题而言,对于更短的完整版本,您也可以使用.prependTo()

$('.save').live('click', function() {
  var editBox = $(this).parent('div').find('.editBox').remove();
  $("<p />", { text: editBox.val() }).prependTo($(this).parent('div'));
  $(this).remove();
});

乍一看,我发现你是动态添加这些内容,在这种情况下你应该像上面一样使用.live().click()选择器会找不到这些元素以后,所以它永远不会运行:)。