JQuery返回元素的空白文本

时间:2013-04-17 15:38:43

标签: php ajax

所以我试图收到特定ID的元素文本。在我的Javascript文件中Ih ave这段代码:

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.但是每当我尝试在名称+ i处获取文本时它返回一个空白。有谁知道这个问题?

1 个答案:

答案 0 :(得分:0)

您有一个闭包问题,当您单击处理程序时,i的值将为2。您可以通过将计数器作为参数传递给click事件来阻止这种情况。

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);