1

したがって、特定の ID の要素のテキストを受信しようとしています。私のJavascriptファイルには、次のコードがあります:

var amount = 2;
for (var i = 0; i < amount; i++)
{
    $("#b"+i).click(function() {
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        var name = ($("#name"+i).text());
        alert(name);

空白を警告し続けます。私のphpファイルは次のとおりです。

echo "<td id= \"name".$counter."\">".$values[$counter]."</td>
<td><button id=    \"b".$counter."\">Show Table</button></tr>";
$counter++;

カウンターは基本的に 0 と 1 です。ただし、name+i でテキストを取得しようとすると、空白が返されます。誰もこれの問題を知っていますか?

4

1 に答える 1

0

クロージャの問題がありiます。ハンドラをクリックすると、値は 2 になります。これを防ぐには、カウンターをパラメーターとしてクリック イベントに渡します。

var amount = 2;
for (var i = 0; i < amount; i++)
{
    $("#b"+i).click(i, function(e) {
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else
        {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        var name = ($("#name"+e.data).text());
        alert(name);
于 2013-04-17T15:58:01.460 に答える