下面一个小例子,是文件上传的部分内容.我的想法是,点击x按钮之后,让包裹这个x按钮的div整体删除.
我下面的代码点上没反应,哪块出问题了?谢谢
还有有两个知识点问题:
1.js或jquery中我这种函数参数传递this方式有没有问题?
2.为啥下面delfile传递参数jsdata.path(josn对象)时需要用'包裹,不然就会出问题?var ht='<div id="">'+jsdata.filename+'<input type="hidden" name="filepath[]" value="'+jsdata.path+'"><button type="button" onclick="delfile(\''+jsdata.path+'\',\''+this+'\')">x</button></div>'
$("#xxx").append(ht);
//按钮点击的函数
function delfile(t,m){
        $.ajax({
            type:"GET",
            url:"http://localhost/oschina/Addons_Project/Addons/index.php/demo/index/delfile?filepath="+t,
            success:function (msg) {
//出问题的地方,我想点按钮x, 删除包裹该按钮的div。
              $(m).parent().remove();
            }
        });

解决方案 »

  1.   


    '<div id="">'+jsdata.filename+'<input type="hidden" name="filepath[]" value="'+jsdata.path+'">    <button type="button" onclick="delfile(\''+jsdata.path+'\',this)">x</button><br/></div>'
      

  2.   

    你不用''括起如果是非数字,布尔变量,那就可能语法错误了,如内容是abc123,你不括起就是传递abc123这个变量,扩展就是传递'abc123'这个字符串内容推荐学习资料
    jqGrid中文API
    javascipt修改css级联样式表类和伪类样式
      

  3.   

    使用Ajax 函数 必须在 jQuery域里面 调用
    例如
    function XX(){
    $(function () {
    $.ajax({
    type:"post",
    url:"",
    data:"",
    async:true,
    success:function (data) {

    }
    });
    })
    }
      

  4.   

    this是错误的,你这个this是函数不是div对象
    this不需要加引号 直接在字符串中就好