-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()には、次の代わりに関数 and を使用します。

getImage($(this.val));

あなたが使用する必要があります:

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

上記のすべての議論から、古いバージョンのjQuery(おそらく1.6未満)を使用していると言えます。.attr("value")の代わりにボタンを使用する場合よりもバージョンが 1.6 未満の場合は、jQuery のバージョンを確認してください.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 に答える