-1

我有一个 id="kill" 的按钮。

这是我的 JavaScript:

$("#kill").click(function(){ 
    getImage($(this).val()); 
});

function getImage(code){  
    var code, 
        imgstr;
    imgstr="mypath/"+code+".png";  
    return imgstr;
}

不幸的是,返回了错误的值。但是,如果我在函数 getImage 中分配值,如下所示:

$("#kill").click(function(){ 
    getImage($(this).val()); 
});

function getImage(code){  
    var code="12", 
        imgstr;
    imgstr="mypath/"+code+".png";  
    return imgstr;
}

然后它返回正确的值。我怎样才能解决这个问题?

4

4 回答 4

2

要检索值,请使用.val()函数而不是:

getImage($(this.val));

你应该使用:

getImage($(this).val());
于 2012-04-14T07:04:19.537 回答
0

只需删除本地“代码”变量即可。它隐藏了参数。

于 2012-04-15T01:24:48.377 回答
0

从以上所有讨论中,我可以说您使用的是旧版本的 jQuery(可能 < 1.6)。检查 jQuery 的版本,如果版本 < 1.6 而不是按钮使用.attr("value")而不是.val(),可能是这个(未测试)有效!

$("#kill").click(function(){ 
    getImage($(this).attr("value")); 
});

function getImage(code){  
    var code, 
        imgstr;
    imgstr="mypath/"+code+".png";  
    return imgstr;
}
于 2012-04-14T08:33:37.997 回答
0

为什么要创建另一个同名的局部变量?(可能是code在某些浏览器中覆盖了传递的 ,。)

用这个,

$("#kill").click(function(){ 
    getImage($(this).val()); 
});

function getImage(code){  
    var localCode = code,
    imgstr;
    imgstr="mypath/"+localCode+".png";  
    return imgstr;
}
于 2012-04-14T07:55:28.700 回答