接受(#id).val()的javascript函数返回错误的值

时间:2012-04-14 07:03:19

标签: javascript jquery

我有一个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 个答案:

答案 0 :(得分:2)

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

getImage($(this.val));

你应该使用:

getImage($(this).val());

答案 1 :(得分:0)

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

使用此,

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

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

答案 2 :(得分:0)

从上面的讨论我可以说你使用的是旧版本的jQuery(可能<1.6)。检查版本的jQuery,如果版本是&lt; 1.6比按钮使用.attr("value")而不是.val(),可能是这个(未经测试)的作品!!

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

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

答案 3 :(得分:0)

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